在C#中,我试图验证一个类似于以下内容的字符串:
I@paramname='test'
要么
O@paramname=2827
这是我的代码:
string t1 = "I@parameter='test'"; string r = @"^([Ii]|[Oo])@\w=\w"; var re = new Regex(r);
如果我从结尾或变量r处取掉“ = \ w”,则得到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