regex - 在多个文本文件中查找某个关键字后的空格并用逗号替换

标签 regex sublimetext2

我有一个包含具有以下结构的文本文件的文件夹:

@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下面的“空格”字符,但保留以开头的行中的空格@ATTRIBUTE

我找到了一种方法来选择文本文件中的所有空格,但我不知道如何仅选择 @DATA 之后的空格并在每个文件中替换它们(使用 ctrl+shift+f)。

如果有任何有关如何解决此问题的建议,我将不胜感激,提前致谢。

最佳答案

您可以使用此搜索/替换:

搜索:(?:\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[ ]

关于regex - 在多个文本文件中查找某个关键字后的空格并用逗号替换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31380901/

相关文章:

regex - 结合否定字符和捕获组

python - 用于消除位信号噪声尖峰的正则表达式

java - Sublime Text 2 中 public static void main() 和 System.out.println() 的键绑定(bind)

python - 重新编译正则表达式帮助(python、beautifulsoup)

java - 如果后面的组没有被捕获,则在第一次捕获组后忽略空格

javascript - 正则表达式从字符串中去除纬度/经度

ruby - Sublime Monokai 语法高亮 : How to color method calls and make the color different inside of interpolated strings

shell - Sublime Text 2 : subl shell command often fails to open files

python - 如何设置使用哪个版本的python sublime text

java - 在 Sublime Text 2 中编译和运行 Java 代码