Notepad++ 正则表达式替换连字符

Notepad++ Regex replace Hyphens

我有一个 HTML 并且 alt 标签的格式如下:

alt="something-nice-and-beautiful"

如何仅用 alt 标记之间的空格替换所有连字符 -

我还在为这个问题绞尽脑汁。我的第一个倾向是说用这个作为搜索

(alt="[^"]*?)\-(.*?")

然后替换为 。每次您 运行 它时,它都会用一个 space 替换一个连字符,只需继续执行全部替换,直到没有匹配项为止。如果我多考虑一下,我可能会想出一个更优雅的解决方案,但这是可行的。

在源表达式中(确保启用 .* 正则表达式按钮)。由于这不适用于单个表达式,因此我会这样做(当然假设您的标签最多具有可管理的长度!)

搜索:

(?<=alt=")(\w+)-(?=")

替换为:


然后再次 search/replace,添加一个 (\w+)-:

(?<=alt=")(\w+)-(\w+)-(?=")
 

再一次:

(?<=alt=")(\w+)-(\w+)-(\w+)(?=")
  

...

(?<=alt=")(\w+)-(\w+)-(\w+)-(\w+)(?=")
   

边做边添加额外的词,以确保替换所有标签。