Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/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
Regex 使用正则表达式检查表达式的有效性_Regex_Vb.net - Fatal编程技术网

Regex 使用正则表达式检查表达式的有效性

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 是匹配任何字符的元字符。您需要将其转义到\。以仅匹配句点

我需要在我的代码中验证在文本框中输入的表达式的有效性,所以我想使用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
  • 是匹配任何字符的元字符。您需要将其转义到
    \。
    以仅匹配句点
  • 您的范围无效,因为您写入了
    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)
    。您可以在此处找到详细信息:。