在 Textpad 中如何仅替换字符串的一部分 space

In Textpad how to replace space in only part of a string

我有几个 html 文件(源代码),其中包含大量文本并包含链接到的许多报告文件的代码。

我需要用下划线符号 (_) 替换文件名中的每个 space ( )。此替换不得影响文本的其余部分。

所有链接都遵循相同的文件夹结构,但文件名除了扩展名 (.pdf) 外都大不相同

例如,我有

Please find the presentations: 
href="/Portals/12/Documents/GE-Project/Amalty-WS/Joanna_POT Pb paint health econ env_RUS.pdf">Presentation 1

我需要:

Please find the presentations: 
href="/Portals/12/Documents/GE-Project/Amalty-WS/Joanna_POT_Pb_paint_health_econ_env_RUS.pdf">Presentation 1

在 Windows 中,使用 TEXTPAD,我尝试使用正则表达式 (find/replace) (/Amalty-WS/[a-z,A-Z,0-9,_, ,]*\.pdf),但不知道如何只替换 space。

您可以使用

(?:\G(?!^)|/Amalty-WS/)[^"\s]*\K\s(?=[^"]*")

替换为_

参见regex demo

详情:

  • (?:\G(?!^)|/Amalty-WS/) - 上一个成功匹配的结尾 (\G(?!^)) 或 /Amalty-WS/ string
  • [^"\s]* - " 和空格
  • 以外的零个或多个字符
  • \K - 丢弃到目前为止匹配的文本的匹配重置运算符
  • \s - 一个空格
  • (?=[^"]*") - 后跟 " 以外的零个或多个字符,然后是 ".