我试图找到一个id和文本的所有标签,但我的正则表达式似乎不工作:正则表达式查找标签
用下面的正则表达式:
<asp:[a-z]+.*? ID="(?<id>.*?)".*? Text="(?<text>.*?)".*?/>
及以下示例文本:
<asp:Label ID="SomeID" Text="SomeText" />
<asp:Label Text="SomeText" />
<asp:Label ID="SomeID" />
<asp:Label ID="SomeOtherID" Text="Some Other Text" />
我碰到下面的比赛:
1. "<asp:Label ID="SomeID" Text="SomeText" />" has 2 groups:
1. "SomeID"
2. "SomeText"
2. "<asp:Label Text="SomeText" /> <asp:Label ID="SomeID" /> <asp:Label ID="SomeOtherID" Text="Some Other Text" />" has 2 groups:
1. "SomeID"
2. "Some Other Text"
第一个显然是正确的,但我不知道为什么#2出现。
而下面的正则表达式唯一发现的第一个标签(“SomeID”),而不是第四个(“SomeOtherID”):
<asp:[a-z]+ (?!.*<[a-z]).*? ID="(?<id>.*?)".*? Text="(?<text>.*?)".*?/>
这里有一个良好的措辞解释! http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags/1732454#1732454 – Andomar 2009-11-17 15:57:36
你为什么要在你的应用程序中搜索你的代码?当然有更好的方法来做到这一点? – 2009-11-17 15:57:42
也许他不是在他的应用程序中搜索他的代码,而是在他的编辑器中搜索他的代码?有围绕正则表达式支持的IDE ... – Heinzi 2009-11-17 16:04:27