解释正则表达式的初学者指南?

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)

Chr*_* B. 5

要知道正则表达式意味着什么,将很难分辨出正则表达式是什么意思tag.实际上,看起来正则表达式被破坏了(或者,至少,它没有正确地逃避输入).

粗略地说,对于第一个正则表达式:

  • ^说来匹配字符串的开头.
  • (...)建立了一个捕获组(它是可用的,尽管本实施例中显然不使用它).
  • \s匹配任何空白字符(空格,制表符,等)
  • *?场比赛零个或多个前面的字符(在这种情况下,空白)的,因为它有一个问号,它匹配的最低,使表达其余工作所需的字符数.
  • 所述(" + tag + @")插入物的内容物tag到正则表达式.正如我所提到的,这是危险的,没有逃脱.
  • (\s*?)比赛一样之前(空白字符的最小数目)
  • ,尾随逗号匹配.

第二个正则表达式非常相似,但查找起始逗号(而不是字符串的开头).

我喜欢正则表达式的Python文档,但看起来这个网站 有一个很好的基本介绍,有C#示例.