如果任何锚标记的href属性为空,我试图用锚标题值替换锚标记值。
喜欢
<a xlink:href="">Lorem Ipsum</a> is simply dummy text of the printing and typesetting industry<a xlink:href ="http://google.com">Google</a>.
如果我尝试使用以下正则表达式:
<a [^>]+>(.*?)<\/a>
然后输出我低于
Lorem Ipsum is simply dummy text of the printing and typesetting industry Google.
它用锚文本值替换了两个锚标记,我需要替换那些href属性值为空的锚标记。
我需要一个如下所示的输出
Lorem Ipsum is simply dummy text of the printing and typesetting industry<a xlink:href ="http://google.com">Google</a>
答案 0 :(得分:2)
我的方法看起来很混乱但是对于你提供的测试链接,它似乎就像你想要的那样工作:
<a [^>]+?(?=href=(?:"|')(?:"|'))[^>]*?>(.*?)<\/a>
我在正则表达式中添加了以下内容
[^>]+?(?=href=(?:"|')(?:"|'))[^>]*?
。在我添加的部分的开头和结尾处的通配符只是用于匹配&lt;之间的任何其他属性或空格。 &GT;
括号内的正则表达式称为positive lookahead。这意味着它将匹配括号内的任何内容,但不会将其包含在结果中。
正向前瞻与href后跟空字符串相匹配。
请注意,如果href = expression之后的引号不匹配,我的正则表达式仍会匹配
我希望这能回答你的问题。
答案 1 :(得分:1)
请尝试:<a[^<]+href=(['"]{2})\1?[^>]*?>([^<>]*)<\/a>