RegEx提取字符串,保持线条完好无损

时间:2016-12-07 11:53:15

标签: regex extract

我想从一个包含几千行的文本文件中提取一组特定的字符串。该文件有空行,这对于保存至关重要。我设法匹配所有字符串,但我没有设法保留它们同时删除可能在同一行中的所有其他内容。我尝试过负面的前瞻 - 他们只设法匹配每行模式的一个实例。

我使用的是SublimeText,但我也可以使用任何命令行正则表达式解释器。

我的数据如下:

....
Some Text, more text
[empty line]
Silberdruck
Golddruck, Silberdruck
[empty line]
Some Text, Silberdruck
Golddruck some text, Silberdruck
...

我需要保留所有包含* druck的词语,因此数据应如下所示:

....    
[empty line]
[empty line]
Silberdruck
Golddruck, Silberdruck
[empty line]
Silberdruck
Golddruck Silberdruck
....

每行可能会出现多次模式。

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

您可以使用

(\h*\w*druck\b[[:punct:]\h]*)|.

并替换为$1

详细

  • (\h*\w*druck\b[[:punct:]\h]*) - 第1组捕获序列
    • \h* - 0+水平空格
    • \w* - 0+ word chars
    • druck\b - druck后跟字边界
    • [[:punct:]\h]* - 零个或多个标点符号或水平空格
  • | - 或
  • . - 除了换行符之外的任何字符