正则表达式:从一行中删除空格
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"|||
我尝试了正则表达式的变体,但还没有更好的结果。显然,由于无法分别捕获 bravo
和 charlie
,我不明白如何捕获每场比赛。
(这似乎是一个常见问题。我知道这是否重复,但我一直找不到它。)
更新:
我已经使用下面的模式来完成工作,但我仍然想更好地理解这一点以便能够一次性完成。
(^.*, "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
截图(之前):
截图(之后):
我想从表达式的一部分中删除空格。
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"||| |
我尝试了正则表达式的变体,但还没有更好的结果。显然,由于无法分别捕获 bravo
和 charlie
,我不明白如何捕获每场比赛。
(这似乎是一个常见问题。我知道这是否重复,但我一直找不到它。)
更新:
我已经使用下面的模式来完成工作,但我仍然想更好地理解这一点以便能够一次性完成。
(^.*, "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
截图(之前):
截图(之后):