HTML 标记中的匹配空格 <img> (正则表达式)



我有一堆html文件,其中img标签中的文件名包含空格()。 我需要在文本编辑器中用下划线 (_) 替换空格。 我正在使用这个正则表达式:

(?<=/img/)(s)(?=.png")

但它不起作用! 下面是一个具有预期结果的示例:

<img src="./img/setup3oval 7  1.png"/>

预期成果:

<img src="./img/setup3oval_7__1.png"/>

任何帮助都非常感谢

由于正则表达式施加的限制,无法在一次运行中使用正则表达式执行您要求的操作。但是你可以部分地做到这一点:

(?<=src=")(.*?)s+(.*?)(?=.)

您已经提到您正在使用文本编辑器来运行此正则表达式。如果您使用的是记事本++之类的东西,您应该能够多次单击替换按钮,直到达到预期结果,将文本替换为$1_$2。如果您的图像文件路径之间没有太多空格,这应该不是太大的问题。

正则表达式的解释:

  • (?<=src=")- 这是后面的正面外观,用于仅匹配此模式前面的字符串。我使用src属性作为引用而不是<img>标签。
  • (.*?)s+(.*?)- 这将匹配两个文本块之间的任何空格。我使用了惰性量词来避免错误的匹配。我还将这些块包装在捕获组上,以便在替换时使用它们。
  • (?=.)- 这是一个积极的展望。文本将匹配,直到它到达点字符,字面意思。也就是说,假设线上不会有任何其他点。如果不是这种情况,您应该更改此断言。

演示:regex101.com

我还在记事本++上测试了这个正则表达式,多次点击替换按钮。预期成果已经实现。

相关内容

最新更新