RegEx 仅替换 <h> html 标签之外的事件
RegEx replace only occurrences outside of <h> html tags
我想用正则表达式替换下面文本中的 Plus,但前提是 不是 包裹在 header 中标签:
<h4 class="Somethingsomething" id="something">Plus plan</h4>The <b>Plus</b> plan starts at per person per month and comes with everything from Basic.
在上面我想替换第二个“Plus”而不是第一个。
到目前为止我的正则表达式尝试是:
(?!<h\d*>)\bPlus\b(?!<\h>)
含义:
- 如果在
结尾,则不要捕获以下内容
- 仅当“Plus”组被 spaces 或白色 space
包围时捕获
但是 - 这会捕获这两种情况。有人可以指出我的错误并纠正吗?
我想在 VBA 中使用它,但据我所知应该是一个一般的正则表达式问题。
Somewhat related but not addressing my problem in regex
Not relevant, as not RegEx
您可以使用
\bPlus\b(?![^>]*<\/h\d+>)
见regex demo。要在替换模式中使用匹配项,请在 VBA 代码中使用 $&
反向引用。
详情:
\bPlus\b
- 一个完整的单词 Plus
(?![^>]*<\/h\d+>)
- 如果在当前位置的右侧紧邻有
[^>]*
- >
以外的零个或多个字符
<\/h
- </h
字符串
\d+
- 一位或多位数字
>
- 一个 >
字符。
我想用正则表达式替换下面文本中的 Plus,但前提是 不是 包裹在 header 中标签:
<h4 class="Somethingsomething" id="something">Plus plan</h4>The <b>Plus</b> plan starts at per person per month and comes with everything from Basic.
在上面我想替换第二个“Plus”而不是第一个。
到目前为止我的正则表达式尝试是:
(?!<h\d*>)\bPlus\b(?!<\h>)
含义:
- 如果在
结尾,则不要捕获以下内容 - 仅当“Plus”组被 spaces 或白色 space 包围时捕获
但是 - 这会捕获这两种情况。有人可以指出我的错误并纠正吗?
我想在 VBA 中使用它,但据我所知应该是一个一般的正则表达式问题。
Somewhat related but not addressing my problem in regex
Not relevant, as not RegEx
您可以使用
\bPlus\b(?![^>]*<\/h\d+>)
见regex demo。要在替换模式中使用匹配项,请在 VBA 代码中使用 $&
反向引用。
详情:
\bPlus\b
- 一个完整的单词Plus
(?![^>]*<\/h\d+>)
- 如果在当前位置的右侧紧邻有[^>]*
->
以外的零个或多个字符
<\/h
-</h
字符串\d+
- 一位或多位数字>
- 一个>
字符。