在某个关键字后的多个文本文件中用逗号查找和替换空格
Find and replace spaces by commas in multiple text files after a certain keyword
我有一个包含具有以下结构的文本文件的文件夹:
@ATTRIBUTE dynamics_rms_Mean NUMERIC
@ATTRIBUTE dynamics_rms_Std NUMERIC
@ATTRIBUTE dynamics_rms_Slope NUMERIC
@ATTRIBUTE dynamics_rms_PeriodFreq NUMERIC
@ATTRIBUTE dynamics_rms_PeriodAmp NUMERIC
@ATTRIBUTE dynamics_rms_PeriodEntropy NUMERIC
@DATA
9.749956e-01 2.257056e-01 1.667380e-01 NaN NaN 9.706193e-01
我想使用 Sublime Text 为所有这些文本文件查找并替换 @DATA
下面的 "space" 个字符,但保留以 @ATTRIBUTE
.
开头的行
我找到了一种方法 select 文本文件中的所有空格,但我不知道如何 select 仅 @DATA
之后的空格并将它们替换为每个文件(使用ctrl+shift+f)。
我将不胜感激有关如何解决此问题的任何建议,在此先感谢。
您可以使用以下正则表达式替换(请注意模式末尾有文字 space):
(?:^@DATA|\G(?!^))\K([\s\S]*?) (?!$)
并替换为,
替换后:
你可以使用这个search/replace:
搜索:(?:\G(?!^)|^@DATA\R)[^ ]+\K[ ]
替换:,
图案详情:
(?: # non-capturing group
\G # anchor for the position of the last match
(?!^) # not at the start of a line
| # OR
^ # start of a line
@DATA
\R # any newline sequence
)
[^ ]+ # one or more characters that are not a space
\K # discards all on the left from the match result
[ ] # a space
要处理连续几行数据并在第一个空行停止,需要将模式更改为:
(?:\G(?!^)|^@DATA\R)[^\n ]+(?:\R[^\n ]+)?\K[ ]
我有一个包含具有以下结构的文本文件的文件夹:
@ATTRIBUTE dynamics_rms_Mean NUMERIC
@ATTRIBUTE dynamics_rms_Std NUMERIC
@ATTRIBUTE dynamics_rms_Slope NUMERIC
@ATTRIBUTE dynamics_rms_PeriodFreq NUMERIC
@ATTRIBUTE dynamics_rms_PeriodAmp NUMERIC
@ATTRIBUTE dynamics_rms_PeriodEntropy NUMERIC
@DATA
9.749956e-01 2.257056e-01 1.667380e-01 NaN NaN 9.706193e-01
我想使用 Sublime Text 为所有这些文本文件查找并替换 @DATA
下面的 "space" 个字符,但保留以 @ATTRIBUTE
.
我找到了一种方法 select 文本文件中的所有空格,但我不知道如何 select 仅 @DATA
之后的空格并将它们替换为每个文件(使用ctrl+shift+f)。
我将不胜感激有关如何解决此问题的任何建议,在此先感谢。
您可以使用以下正则表达式替换(请注意模式末尾有文字 space):
(?:^@DATA|\G(?!^))\K([\s\S]*?) (?!$)
并替换为,
替换后:
你可以使用这个search/replace:
搜索:(?:\G(?!^)|^@DATA\R)[^ ]+\K[ ]
替换:,
图案详情:
(?: # non-capturing group
\G # anchor for the position of the last match
(?!^) # not at the start of a line
| # OR
^ # start of a line
@DATA
\R # any newline sequence
)
[^ ]+ # one or more characters that are not a space
\K # discards all on the left from the match result
[ ] # a space
要处理连续几行数据并在第一个空行停止,需要将模式更改为:
(?:\G(?!^)|^@DATA\R)[^\n ]+(?:\R[^\n ]+)?\K[ ]