Select 一个模式的每个实例,在一个模式中,使用正则表达式?
Select each instance of a pattern, inside a pattern, with regex?
我正在尝试从标题上的 HTML ID 中删除空格,并将它们替换为 - 字符。到目前为止,我一直在做一个多步骤的过程。我想使用正则表达式将其压缩为一步。我一直在尝试制作一个正则表达式模式,以在可变模式中突出显示字符的实例,但我没有取得太大的成功。
正则表达式应替换此处的 2 个空格:
<h2 id="three word sentence">
正则表达式应替换此处的 3 个空格:
<h2 id="four words in sentence">
这就是我目前所拥有的,它可以找到每件商品的完整 ID。然后我打开“在选择中查找”并将空格替换为 -
.
(?<=<h[234] id=").*(?=")
我怎样才能一步找到空格?
您可以使用
(?:\G(?!\A)|<h\d+\s+id=")[^"\s]*\K\s+(?=[^"]*")
见regex demo。 详情:
(?:\G(?!\A)|<h\d+\s+id=")
- 上一个成功匹配的结尾或 <h
,一个或多个数字,一个或多个空格和 id="
字符串
[^"\s]*
- "
和空格 以外的零个或多个字符
\K
- 匹配重置运算符,它会从整个匹配内存缓冲区中丢弃到目前为止匹配的文本
\s+
- 一个或多个空格
(?=[^"]*")
- 一个积极的前瞻,需要 "
以外的零个或多个字符,然后是当前位置右侧的 "
个字符。
我正在尝试从标题上的 HTML ID 中删除空格,并将它们替换为 - 字符。到目前为止,我一直在做一个多步骤的过程。我想使用正则表达式将其压缩为一步。我一直在尝试制作一个正则表达式模式,以在可变模式中突出显示字符的实例,但我没有取得太大的成功。
正则表达式应替换此处的 2 个空格:
<h2 id="three word sentence">
正则表达式应替换此处的 3 个空格:
<h2 id="four words in sentence">
这就是我目前所拥有的,它可以找到每件商品的完整 ID。然后我打开“在选择中查找”并将空格替换为 -
.
(?<=<h[234] id=").*(?=")
我怎样才能一步找到空格?
您可以使用
(?:\G(?!\A)|<h\d+\s+id=")[^"\s]*\K\s+(?=[^"]*")
见regex demo。 详情:
(?:\G(?!\A)|<h\d+\s+id=")
- 上一个成功匹配的结尾或<h
,一个或多个数字,一个或多个空格和id="
字符串[^"\s]*
-"
和空格 以外的零个或多个字符
\K
- 匹配重置运算符,它会从整个匹配内存缓冲区中丢弃到目前为止匹配的文本\s+
- 一个或多个空格(?=[^"]*")
- 一个积极的前瞻,需要"
以外的零个或多个字符,然后是当前位置右侧的"
个字符。