【问题标题】:RegEx extract string, keep lines intact正则表达式提取字符串,保持线条完整
【发布时间】:2016-12-07 11:53:14
【问题描述】:

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

我使用的是 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
....

模式可能每行出现多次。

感谢您的帮助!

【问题讨论】:

  • 在 Sublime 中尝试 (\h*\w*druck\b[[:punct:]\h]*)|. -> $1
  • 谢谢,这工作正常!

标签: regex extract


【解决方案1】:

你可以使用

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

并替换为$1

详情

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-08-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-05
    • 1970-01-01
    • 2014-08-25
    相关资源
    最近更新 更多