【发布时间】:2021-10-22 01:36:25
【问题描述】:
我想在下面的文本中用正则表达式替换 Plus,但前提是它不包含在标题标签中:
<h4 class="Somethingsomething" id="something">Plus plan</h4>The <b>Plus</b> plan starts at $14 per person per month and comes with everything from Basic.
在上面我想替换第二个“Plus”而不是第一个。
到目前为止,我的正则表达式尝试是:
(?!<h\d*>)\bPlus\b(?!<\\h>)
意思:
- 如果在
- 仅当“Plus”组被空格或空白包围时才捕获
但是 - 这会捕获这两种情况。有人可以指出我的错误并纠正吗?
我想在 VBA 中使用它,但据我所知,这应该是一个一般的正则表达式问题。
【问题讨论】:
-
VBA 中的正则表达式当然不是一般的正则表达式问题。这里只考虑一个非 POSIX 正则表达式。
-
试试
\bPlus\b(?![^>]*<\/h\d+>),见regex101.com/r/Dkkn2y/2。或者,\bPlus\b(?=<\/b>),参见regex101.com/r/Dkkn2y/3。您是替换还是提取匹配项?你想达到什么目的?如果您共享当前的 VBA 代码,也会有所帮助。 -
替换是目标。我需要将我们的变量插入到链接页面。所以替换的值应该是:
<h4 class="Somethingsomething" id="something">Plus plan</h4>The <b>{{Provider_Link 'Plus', 33}}</b> plan starts at $14 per person per month and comes with everything from Basic. -
好的,那么
\bPlus\b(?![^>]*<\/h\d+>)是一种可能适合您的解决方法。替换为{{Provider_Link '$&', 33}}。见regex101.com/r/Dkkn2y/4
标签: html regex vba regex-negation regexp-replace