Rav*_*mer 2 c# regex string-comparison
问候.
我的任务是调试涉及正则表达式的应用程序的一部分 - 但是,我之前从未处理过Regex.两个问题:
1)我知道正则表达式应该测试两个字符串是否相同,但下面的两个正则表达式具体用什么来表示普通英语?
2)有没有人对我可以了解更多有关正则表达式的网站/来源有什么建议?(最好是在C#中)
if (Regex.IsMatch(testString, @"^(\s*?)(" + tag + @")(\s*?),", RegexOptions.IgnoreCase))
{
result = true;
}
else if (Regex.IsMatch(testString, @",(\s*?)(" + tag + @")(\s*?),", RegexOptions.IgnoreCase))
{
result = true;
}
Run Code Online (Sandbox Code Playgroud)
要知道正则表达式意味着什么,将很难分辨出正则表达式是什么意思tag.实际上,看起来正则表达式被破坏了(或者,至少,它没有正确地逃避输入).
粗略地说,对于第一个正则表达式:
^说来匹配字符串的开头.(...)建立了一个捕获组(它是可用的,尽管本实施例中显然不使用它).\s匹配任何空白字符(空格,制表符,等)*?场比赛零个或多个前面的字符(在这种情况下,空白)的,因为它有一个问号,它匹配的最低,使表达其余工作所需的字符数.(" + tag + @")插入物的内容物tag到正则表达式.正如我所提到的,这是危险的,没有逃脱.(\s*?)比赛一样之前(空白字符的最小数目),尾随逗号匹配.第二个正则表达式非常相似,但查找起始逗号(而不是字符串的开头).
我喜欢正则表达式的Python文档,但看起来这个网站 有一个很好的基本介绍,有C#示例.