我需要从以下代码行中提取
<label for="<%=foobar.bar %>">Password:</label>
<label for="foobar">Password:</label>
我需要提取foobar
,我可以使用它:(?<=for=")[^"]+(?=("))
来提取:
<%=foobar.bar %>
和
foobar
但我不想<%=
或.bar
,如果我尝试创建(?<=for=")[^"]+(?=(")) | (?<=for="<%=)[^"]+(?=("))
,那么它不起作用,因为包含<%=
的标签符合这两个条件,我认为你不能使用XOR?这是否有人可以帮助我?
Merci:)
答案 0 :(得分:1)
我认为最好不要创造超级正则表达式。通过几个步骤完成您的任务:
<%=foobar.bar %>
或foobar
(?<=for=")[^"]+(?=("))
<%=([\w]+)\.bar\s*%>
等正则表达式匹配。$1
组,则使用步骤2的结果。答案 1 :(得分:0)
你可以试试这个:
(?<for="(<%=)?)[^" ]*(?=( %>)?")
假设您要捕获的内容从不包含空格。否则你可以尝试:
(?<for="(<%=)?)[^"]*?(?=( %>)?")
使用非贪婪形式的[^"]*