Regex 使用正则表达式检查表达式的有效性
我需要在我的代码中验证在文本框中输入的表达式的有效性,所以我想使用Regex,但我的问题是我不明白它 这是我的表达式:[3个数字][1个字符移位][1个数字] 例如:007-L.4 我试着这样做:Regex 使用正则表达式检查表达式的有效性,regex,vb.net,Regex,Vb.net,我需要在我的代码中验证在文本框中输入的表达式的有效性,所以我想使用Regex,但我的问题是我不明白它 这是我的表达式:[3个数字][1个字符移位][1个数字] 例如:007-L.4 我试着这样做: Dim MyRegex As Regex = New Regex("^[0-9]{3}-[a-zA-Z].[O-9]$") 但它不起作用 提前感谢您您的模式中有两个错误: ^[0-9]{3}-[a-zA-Z].[O-9]$ ^ ^ 1 2 是匹配任何字符的元字符。您需要将其转义到\。以仅匹配句点
Dim MyRegex As Regex = New Regex("^[0-9]{3}-[a-zA-Z].[O-9]$")
但它不起作用
提前感谢您您的模式中有两个错误:
^[0-9]{3}-[a-zA-Z].[O-9]$
^ ^
1 2
是匹配任何字符的元字符。您需要将其转义到\。
以仅匹配句点O
(字母)而不是0
(数字)。:-)李>
以下是更正后的模式:
Dim MyRegex As Regex = New Regex("^[0-9]{3}-[a-zA-Z]\.[0-9]$")
()您可以编写
\d
而不是[0-9]
@Olivier这通常是正确的,但是。。。在.NET中,\d
相当于\p{N}
(任何Unicode数字),而不是[0-9]
,这就是我不使用它的原因。如果您想使用\d,您必须添加ECMAScript选项:将myRegex作为新的正则表达式(“^\d{3}-[a-z]\.\d$”,RegexOptions.ECMAScript或RegexOptions.IgnoreCase)
。您可以在此处找到详细信息:。