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
C# 用正则表达式匹配字符串_C#_Regex - Fatal编程技术网

C# 用正则表达式匹配字符串

C# 用正则表达式匹配字符串,c#,regex,C#,Regex,程序将获得一个字符串作为电子表格中单元格的名称。此电子表格可以包含名称以字母a-zA-Z_u开头的单元格。必须如此,否则无效。在第一个字母或下划线之后,可以是字母、数字或下划线的任意组合。例如: ______35we3I是一个有效的名称 123dfdf不是有效的名称 如果这些字符串存在,我想抛出一个异常。我不熟悉正则表达式,但这是我想到的,它不能像我希望的那样工作 @"[a-zA-Z_][a-zA-Z_|\d]*" 当第二个示例传入时,Regex.IsMatch函数返回true,因为表达式的后

程序将获得一个字符串作为电子表格中单元格的名称。此电子表格可以包含名称以字母a-zA-Z_u开头的单元格。必须如此,否则无效。在第一个字母或下划线之后,可以是字母、数字或下划线的任意组合。例如:

______35we3I是一个有效的名称

123dfdf不是有效的名称

如果这些字符串存在,我想抛出一个异常。我不熟悉正则表达式,但这是我想到的,它不能像我希望的那样工作

@"[a-zA-Z_][a-zA-Z_|\d]*"
当第二个示例传入时,Regex.IsMatch函数返回true,因为表达式的后半部分有效。有没有办法总是从字符串的开头开始


我应该说,我尝试使用{^}来完成上述条件,但当胡萝卜存在时,它不接受任何东西。

您需要使用开始和结束锚,而不需要将|放在角色类中。|char类内部将匹配一个文字符号

代码:


您需要使用开始和结束锚定,而不需要将|放在角色类中char类内部将匹配一个文字符号

代码:


为了测试你的正则表达式,你有一个非常好的网站

对于正则表达式,您希望在正则表达式中添加数字验证器:

@"^[0-9a-zA-Z_][a-zA-Z_\d]*"
这样,您的两个字符串就被验证了

@"^[a-zA-Z_][a-zA-Z_\d]*"

有了这个,就可以验证以非数字开头的字符串。

对于测试正则表达式,您有一个非常好的网站

@"^[a-zA-Z_][a-zA-Z_\d]*"
对于正则表达式,您希望在正则表达式中添加数字验证器:

@"^[0-9a-zA-Z_][a-zA-Z_\d]*"
这样,您的两个字符串就被验证了

@"^[a-zA-Z_][a-zA-Z_\d]*"

这样,只需验证以非数字开头的字符串。

对我来说似乎很好,只需添加表达式的开头和结尾即可对其进行测试:以下是Avinash给出了很好建议的链接。我只想补充一点:为了测试你的正则表达式,你可以使用RadSoftware regex designer,它非常强大,因为它内置于.Net中,它提供了与.Net regex类完全相同的选项。对我来说似乎很好,只是通过添加表达式的开头和结尾来测试它:这是Avinash给出了很好建议的链接。我只想补充一点:为了测试你的正则表达式,你可以使用RadSoftware正则表达式设计器,它非常强大,而且由于它内置于.Net中,所以它提供了与.Net正则表达式类完全相同的选项。op不希望一开始出现一个数字。哦,对不起,我的错误,感谢您的回复:字符类内的p |将匹配文字符号。感谢您的网站非常有用。op不希望一开始出现数字。哦,对不起,我的错误,感谢您的回复:字符类内的p |将匹配文字符号。感谢您的网站非常有用。非常感谢。我猜我只是用错了网站来测试我的正则表达式。非常感谢。我猜我只是用了错误的网站来测试我的正则表达式。
@"^[a-zA-Z_][a-zA-Z_\d]*"