正则表达式:从一行中删除空格

regular expression: remove spaces from part of a line

我想从表达式的一部分中删除空格。

Input some other stuff goes here, "alpha bravo charlie delta echo"
Desired output some other stuff goes here, "alphabravocharliedeltaecho"

, "alpha 在某些行上是常量,之后我希望删除所有空格。

我目前正在与

合作
Find: ^(.*, "alpha) (((\w*) )*)(\w*")$
Replace with: ||||||| (pipes and extra outputs to see what was happening)
Results some other stuff goes here, "alpha|bravo charlie delta |delta |delta|echo"|||
Expected results some other stuff goes here, "alpha|bravo|charlie|delta|echo"|||

我尝试了正则表达式的变体,但还没有更好的结果。显然,由于无法分别捕获 bravocharlie,我不明白如何捕获每场比赛。

(这似乎是一个常见问题。我知道这是否重复,但我一直找不到它。)

更新:

我已经使用下面的模式来完成工作,但我仍然想更好地理解这一点以便能够一次性完成。

(^.*, "alpha )(\w+) (.*)$ 重复,直到“全部替换:整个文件中替换了 0 处”
(^.*, "alpha) (.*)$

  • Ctrl+H
  • 查找内容:(?:"alpha|\G(?!^)\w+)\K\h+(?=.*?")
  • 替换为:LEAVE EMPTY
  • 检查 环绕
  • 检查 正则表达式
  • 取消选中 . matches newline
  • 全部替换

解释:

(?:             # non capture group
    "alpha          # literally
  |               # OR
    \G(?!^)         # restart from last match position, not at the beginning of line
    \w+             # 1 or more word character
)               # end group
\K              # forget all we have seen until this position
\h+             # 1 or more horizontal spaces
(?=.*?")        # positive lookahead, make sure we have a double quote after

截图(之前):

截图(之后):