.NET Regex相当于Python Regex的(?P = previousmatchname)

时间:2011-09-28 02:47:34

标签: c# .net regex

在Python的正则表达式实现中,您可以执行以下操作:

 <(?P<foo>.*)>(.*)</(?P=foo)>

基本上它会寻找<this>right here</this>而不是<this>right </here>。基本上它允许您在正则表达式中使用之前捕获的命名匹配。有没有办法用.NET的Regex做到这一点?

2 个答案:

答案 0 :(得分:4)

您可以使用尖括号或单引号并使用\ k来引用它们:

<(?<foo>.*)>(.*)</(\k<foo>)>

<(?'foo'.*)>(.*)</(\k'foo')>

有关详细信息,请参阅this页面,然后向下滚动到“使用.NET的System.Text.RegularExpressions命名捕获”部分。

答案 1 :(得分:0)

试试这个:

<(?<foo>.*)>(.*)</\<foo>>