我希望匹配从此开始的任何文本块
<eu:img
后面跟着
>
接着是
"<bean:message key="
后面跟着任何东西
>
例如,我希望将此文字从 eu:img 匹配到 消息密钥=“ < / p>
<eu:img src="static/image/icons/erase12.png"
title="<bean:message key="attachedFile.delete.tooltip"/>"></eu:img>
但不是这个文字:
<eu:img src="static/image/icons/erase12.png" title="someTitle"></eu:img>
<link title="<bean:message key="attachedFile.delete.tooltip"/>"></link>
以下是我的尝试:
(?s)^<eu:img((?!.*?>).*.{1}?(\=\"<bean:message key\=\"))
答案 0 :(得分:3)
试试这个:
/(<eu:img[^>]+<bean:message key=)/gs
OP的编辑:很好的答案,但不是我使用的正则表达式引擎的正确语法:Eclipse(我认为是Perl 5)。无论如何这都很好:
(?s)<eu:img[^>]+="<bean:message key="
<eu:img
字面匹配字符<eu:img
(区分大小写)[^>]+
匹配列表中不存在的单个字符(>
)
量词:在一次和无限次之间,尽可能多次,根据需要回馈[贪心] <bean:message key=
字面匹配字符<bean:message key=
(区分大小写)