我需要帮助来创建一个正则表达式来清理aspx页面条目。
....
Line 24: <asp:Button ID="id1" runat="server" meta:resourceKey="ButtonTxt"/>
Line 35: <asp:Label ID="id2" runat="server" meta:resourceKey="Name"></asp:Label>
Line 47: <asp:Label ID="id3" runat="server" meta:resourcekey="Other_Name"></asp:Label>
....
如何编写正则表达式来只提取meta:resourceKey="ButtonTxt"
、meta:resourceKey="Name"
、meta:resourcekey="Other_Name"
等等。基本上我只需要提取meta:resourcekey="xxxx"
字符串。
我尝试了.*?(meta:.*?").*
,但这只会持续到第一个"
。
您使用?
限定符将*
-量词置于"
之前,使其不贪婪(或"懒惰"(。这意味着它将尽可能少地与给定的模式匹配。这就是为什么这个量词只匹配到第一个"
。其余部分由您的比赛组后面的.*
覆盖。
如果删除?
,则*
量词匹配贪婪(这是默认行为(。贪婪的量词将尽可能多地匹配,在您的情况下是第二个"
。
您可以在此处看到差异:https://regex101.com/r/IgA15K/1
还有一些关于这个概念的文档:https://learn.microsoft.com/en-us/dotnet/standard/base-types/quantifiers-in-regular-expressions#greedy-和惰性量词