例如,我有一个文字:
Bla bla one two three <b> just another test Romans 12:5 </b>
Okay next line and next text Romans 12:5
And this text is important too Romans 12:5
<іmg src="/іmg.png" title="Romans 12:5" alt="Romans 12:5" someattr="Romans 12:5" />
<a title="Romans 12:5" href="/link.html">Romans 12:5</a>
我需要抓住:
Romans 12:5
但正则表达式必须省略属性(alt,title,any)上的文字,并省略<a>
标签中的文字。
我有类似的正则表达式,但它捕获所有内容,包括包含文本的属性:
Romans(\?| |\.|\. |\.\r\n|\r\n)([0-9]{1,3}):([0-9]{1,3})
BTW我使用PHP preg_replace和这个正则表达式,这个文本修改如下:
<a href=\"http://site.com/Romans/\\7\\3#\\4\" target=\"Romans 12:5\">\\1</a>
谁知道这样做的现代化方式?
提前致谢!
答案 0 :(得分:0)
[^">]{1}(Romans \d{1,3}:\d{1,3})[^"<]{1}
在属性和<a>
标记之外匹配罗马书12:5 的三个实例。
编辑:为了满足其他要求,您可以使用:
(?:[^">]|^){1}(Romans \d{1,3}:\d{1,3})(?:[^"<]|$){1}
如果这仍然不符合您的需要,regexlib.com有各种各样的正则表达式,可以根据您的需要进行调整,例如this one。