Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net 用于在windows窗体中允许点的正则表达式代码_.net_Regex_Vb.net - Fatal编程技术网

.net 用于在windows窗体中允许点的正则表达式代码

.net 用于在windows窗体中允许点的正则表达式代码,.net,regex,vb.net,.net,Regex,Vb.net,我有这样一个代码: Dim builder As New System.Text.StringBuilder table.Rows.Cast(Of DataRow).ToList() _ .ForEach(Sub(row) builder.AppendLine(String.Join("|", _

我有这样一个代码:

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)  

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

),因为您只想在特定上下文中保留点,您需要首先将点添加到求反字符类中,然后添加一个与点匹配的替代项(如果该点未包含数字)。如果用数字括起来,则应将其移除/更换

以下是正则表达式:

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


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

由于您只想在特定上下文中保留点,因此需要首先将点添加到求反字符类,然后添加与点匹配的替代项(如果点未包含数字)。如果点包含数字,则应删除/替换它

以下是正则表达式:

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


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

]
前面添加
字符。我想你可以使用。它对你有用吗?@npinti该代码对我很有用。。非常感谢在
前面添加
字符。我想你可以使用。它对你有用吗?@npinti该代码对我有用。
谢谢对我来说很好…非常感谢