如何在 Notepad++ 中使用 RegEx 选择空格直至特定匹配字符进行替换

如何在 Notepad++ 中使用 RegEx 选择空格直至特定匹配字符进行替换

问题:我需要修改 .csv 中的数百行以进行导入,导入软件不喜欢名称字段中的空格(但会接受描述字段中的空格),所以我只需要替换每行直到第一个“引号”的空格。

示例行:

West Side Switch 1,33,"Incl...

希望它看起来像:

West-Side-Switch-1,33,"Incl...

我不太熟悉使用正则表达式,所以我认为这是一个很好的学习机会。

答案1

使用 Notepad++,有一种方法可以完成这项工作,它将替换第一个双引号之前的所有空格:

  • Ctrl+H
  • 找什么:(?:^|\G)([^"\h]*)\h
  • 用。。。来代替:$1-
  • 检查环绕
  • 检查正则表达式
  • Replace all

解释:

(?:         : start non capture group
  ^         : beginning of line
 |          : OR
  \G        : search from the last match position
)           : end group
(           : start group 1
  [^"\h]*   : 0 or more character that is not a quote or a horizontal space
)           : end group
\h          : horizontal space

替代品:

$1          : content of group 1
-           : a dash

相关内容