C# 如何在C中使用正则表达式检查字符串中的等号#
我想检查如下所示的字符串 第一个C# 如何在C中使用正则表达式检查字符串中的等号#,c#,.net,regex,C#,.net,Regex,我想检查如下所示的字符串 第一个半径=120 及 第二个半径='值' 这是我的密码 v1 = new Regex(@"^[A-Za-z]+\s[=]\s[A-Za-z]+$"); if (v1.IsMatch(singleLine))` { ... ... } 使用@“^[A-Za-z]+\s[=]\s[A-Za-z]+$”此表达式匹配第二个字符串,但不是第一个字符串,使用此@“^[A-Za-z]+\s[=]\s\d{0,3}$”时,仅匹配第一个字符串 我还
半径=120
及
第二个半径='值'
这是我的密码
v1 = new Regex(@"^[A-Za-z]+\s[=]\s[A-Za-z]+$");
if (v1.IsMatch(singleLine))`
{
...
...
}
使用@“^[A-Za-z]+\s[=]\s[A-Za-z]+$”
此表达式匹配第二个字符串,但不是第一个字符串,使用此@“^[A-Za-z]+\s[=]\s\d{0,3}$”
时,仅匹配第一个字符串
我还想检查一下radius='val01'根据你的努力,看起来你好像在想办法
^[A-Za-z]+\s=\s(?:'[A-Za-z0-9]+'|\d{1,3})$
看。详情:
-字符串的开头^
-一个或多个ASCII字母[A-Za-z]+
-包含单个空格字符的\s=\s
字符=
-一个与(?:'[A-Za-z0-9]+'|\d{1,3})
-'[A-Za-z0-9]+'
,然后是一个或多个ASCII字母或数字,然后是一个'
'
-或|
-一位、两位或三位数字\d{1,3}
-字符串结尾(实际上,$
在验证时更安全,因为在\z
之后不可能有最后的尾随换行符,在\z
之后也可能有这样的换行符,但这也取决于您如何获得输入)$
radius='value'
匹配,则表示'value'
仅由字符A-Za-z组成
在这种情况下,您可以向第二个字符类添加匹配的数字:
^[A-Za-z]+\s=\s[A-Za-z0-9]+$
如果要匹配1-3个数字或至少一个字符a-Za-z后跟可选数字:
^[A-Za-z]+\s=\s(?:[0-9]{1,3}|[A-Za-z]+[0-9]*)$
模式匹配:
字符串的开头^
将第一部分与字符A-Za-z和[A-Za-z]+\s=\s
符号匹配(注意=
不必在方括号之间)=
非捕获组(?:
匹配1-3位数字(您可以使用[0-9]{1,3}
,但由于\d{0,3}
,这也将匹配emtpy字符串)0
或|
匹配1+字符A-Za-z,后跟可选数字[A-Za-z]+[0-9]*
关闭非捕获组)
字符串结尾$
这三个例子是否涵盖了所有可能的情况?我的观点是:你应该提到什么是匹配条件。。。在我看来,这三个案例并不像所有可能的案例。i、 e:RHS中的数字总是三位数吗?根据你给我们看的,用一些替代的方法怎么样。我想你可以根据自己的需要取消一些限制。如果你不想匹配单引号,那么使用与第二个字符串不匹配的
^[A-Za-z]+\s(?:'[A-Za-z0-9]+'.\d+$”
模式^[A-Za-z]+\s[=]\s[A-Za-z]+$
,您可以将匹配的数字添加到第二个字符类^[A-Za-z]+\s[=]\s[A-Za-z0-9]+$