【问题标题】:regex code for allowing dot in windows forms用于在 Windows 窗体中允许点的正则表达式代码
【发布时间】:2016-01-18 22:45:30
【问题描述】:

我有这样的代码:

Dim builder As New System.Text.StringBuilder
                table.Rows.Cast(Of DataRow).ToList() _
                    .ForEach(Sub(row)
                                 builder.AppendLine(String.Join("|", _
                                 row.ItemArray.Select(Function(value) String.Format("{0}", Regex.Replace(value, "[^A-Za-z0-9\-\/\ ]", "")).Trim())))
                             End Sub)  

但是这个正则表达式删除了我的 dot(.) 值,我不想删除我的点值。因为我得到了一些价格(3.75,4.25),所以我如何编写代码允许点

【问题讨论】:

标签: .net regex vb.net


【解决方案1】:

由于您只想在特定上下文中保留一个点,因此您需要首先将点添加到否定字符类中,然后添加一个匹配点的替代项(如果它没有用数字括起来)。如果用数字括起来,则应将其删除/替换。

这是正则表达式:

[^A-Za-z0-9/ .-]|(?<!\d)\.(?!\d)

demo

请注意,我将连字符移到了字符类的末尾,这是最佳做法(这样,您不必转义它),并且不需要转义空格和正斜杠。

【讨论】:

    猜你喜欢
    • 2020-03-02
    • 2011-08-27
    • 1970-01-01
    • 2016-03-07
    • 1970-01-01
    • 2016-10-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多