如何在捕获组内进行替换

Ben*_*Ben 4 regex sublimetext

我正在修改现有的 HTML 文档。我正在做一些事情,比如添加目录等。

我有一个带有此 ID 的标题:(id="transcending intellectual limitations"真的!)

我希望能够找到整个 ID,然后用连字符替换空格。

如果我只有 ID,那会很简单,但我不想删除整个文档中的所有空格。

我对正则表达式相当陌生,我正在使用 Sublime 的查找和替换来执行此操作。

Wik*_*żew 7

您可以使用

(?:\bid="|(?!^)\G)[^\s"]*\K\s+ 
Run Code Online (Sandbox Code Playgroud)

并替换为您需要替换空格的任何内容。

(?:\bid="|(?!^)\G)模式设置了初始边界:id="最后一次成功匹配的结束或结束。此模式提供了一个包含两个备选方案的备选列表。\b匹配单词边界,以便id="作为整个单词匹配。该\G字符串的开始和ECH成功的赛后运营商的匹配。为了排除起始位置,(?!^)添加了一个负前瞻(后面没有字符串起始位置)。 查看更多有关\G“你离开的地方:在\G断言”

[^\s"]*除了空格和引号之外,匹配零个或多个字符。

\K运算符使正则表达式引擎从匹配缓冲区中忽略到目前为止匹配的所有文本。

\s+最后匹配将被替换一个或多个空格。

Regex101 演示