例如,我有一个文本:
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
但是regexp必须省略放置在属性(alt、title、anyone(上的文本,也必须省略<a>
标记中的文本。
我有类似的regexp,但它可以捕获所有内容,包括包含文本的atributes:
Romans('?| |'.|'. |'.'r'n|'r'n)([0-9]{1,3}):([0-9]{1,3})
顺便说一句,我把PHP preg_replace和这个regexp一起使用,这个文本修改如下:
<a href='"http://site.com/Romans/''7''3#''4'" target='"Romans 12:5'">''1</a>
谁知道现代化的方法呢?
提前感谢!
[^">]{1}(Romans 'd{1,3}:'d{1,3})[^"<]{1}
匹配属性和<a>
标记之外的Romans 12:5的三个实例。
编辑:为了匹配额外的要求,你可以使用这个:
(?:[^">]|^){1}(Romans 'd{1,3}:'d{1,3})(?:[^"<]|$){1}
如果这仍然不符合您的需求,regexlib.com为各种场景提供了丰富的正则表达式,您可以根据自己的需求进行调整,比如这一个。