Regexp几乎省略了包含数据的所有属性


Regexp all but omit attributes containing data

例如,我有一个文本:

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为各种场景提供了丰富的正则表达式,您可以根据自己的需求进行调整,比如这一个。