在C#中,我试图验证一个类似于以下内容的字符串:I@paramname='test'
要么O@paramname=2827
这是我的代码:
string t1 = "I@parameter='test'";
string r = @"^([Ii]|[Oo])@\w=\w";
var re = new Regex(r);
如果我将“ = \ w”从结尾或变量r中删除,则得到True。如果我在\ w之后添加“ = \ w”,则为False。我希望@和=之间的字符可以是任何字母数字值。 =号之后的任何内容都可以包含字母数字和'(单引号)。我在这里做错了。我很少使用正则表达式,并且通常可以找到示例,尽管这是自定义格式,但即使是备忘单,我也遇到了问题。
最佳答案
^([Ii]|[Oo])@\w+=(?<q>'?)[\w\d]+\k<q>$
正则表达式:
^ start of line
([Ii]|[Oo]) either (I or i) or (O or o)
\w+ 1 or more word characters
= equals sign
(?<q>'?) capture 0 or 1 quotes in named group q
[\w\d]+ 1 or more word or digit characters
\k<q> repeat of what was captured in named group q
$ end of line
关于c# - 等号的正则表达式问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20753208/