dotnet中正则表达式之间的区别

时间:2015-08-17 17:09:16

标签: c# regex

两个正则表达式之间有什么区别

new Regex(@"(^[[[{""])", RegexOptions.Compiled) 

>>> l = [(1,2),(2,3),(1,4)]
>>> dict(l)
{1: 4, 2: 3}

我已经使用了两个正则表达式但无法找到差异。它几乎与类似的东西相匹配。

1 个答案:

答案 0 :(得分:1)

正则表达式模式写得不好,因为

  1. 字符类中有重复的字符(因此是多余的)
  2. 第一个正则表达式在整个模式中包含重复的捕获组。
  3. 第一个正则表达式 - (([[[{""])) - 匹配1个字符,[{",并将其捕获到第1组和第2组。见demo。它等于

    [[{"]
    

    Demo

    第二个正则表达式 - (^[[[{""]) - 仅匹配与上面的模式相同的字符,但在字符串的开头(如果未设置RegexOptions.Multiline),< em>或行的开头(如果设置了该选项)。见demo。它等于

    ^[[{"]
    

    请参阅demo

    您将使用Regex.Match(s).Value访问匹配的字符。

    More about anchors

    Aslo见Caret ^: Beginning of String (or Line)