Anh*_*hTu 3 regex string replace
我想写一个正则表达式,它将用链接替换单词Paris,因为只有单词没有准备好作为链接的一部分.
例:
i'm living <a href="Paris" atl="Paris link">in Paris</a>, near Paris <a href="gare">Gare du Nord</a>, i love Paris.
Run Code Online (Sandbox Code Playgroud)
会成为
i'm living.........near <a href="">Paris</a>..........i love <a href="">Paris</a>.
Run Code Online (Sandbox Code Playgroud)
这很难一步到位.编写单个正则表达式实际上是不可能的.
尝试两步法.
<a href="..."><a href="...">Paris</a></a>),并消除内部链接.第一步的正则表达式很简单:
\bParis\b
Run Code Online (Sandbox Code Playgroud)
第二步的正则表达式稍微复杂一些:
(<a[^>]+>.*?(?!:</a>))<a[^>]+>(Paris)</a>
Run Code Online (Sandbox Code Playgroud)
在整个字符串中使用该字符串并将其替换为匹配组1和2的内容,从而有效地删除多余的内部链接.
用简单的词解释正则表达式#2:
<a[^>]+>),可选地后跟任何本身不是后跟关闭链接(.*?(?!:</a>))的内容.将其保存到匹配组1中.<a[^>]+>).确保它在那里,但不要保存它.</a>).确保它在那里,但不要保存它.该方法假设这些方面条件:
(?!:...)).Paris"变为" <a href"...">Paris</a>",否则第二步将失败(直到您更改第二个正则表达式).BTW:正则表达式#2明确允许这样的结构:
<a href="">in the <b>capital of France</b>, <a href="">Paris</a></a>
剩余链接来自第一步,第二步的替换结果将是:
<a href="">in the <b>capital of France</b>, Paris</a>
| 归档时间: |
|
| 查看次数: |
8341 次 |
| 最近记录: |