【问题标题】:Sublime Text regex with optional groups带有可选组的 Sublime Text 正则表达式
【发布时间】:2014-02-04 23:36:37
【问题描述】:

示例数据(包括换行符)

阿尔法1 100 布拉沃2 别的东西 查理3 200 三角洲4 A==1 回声5 300 狐步舞6

我想得到以下输出:

Alpha1 100 Bravo2 别的东西 查理3 200 Delta4 A==1 Echo5 300 狐步舞6

模式是:

字母数字 数字 字母数字 不是单个字母数字“单词”的值

前三部分很简单——(\w+)\s+(\d+)\s+(\w+)\s+——但我不知道如何有条件的第四组。这可能吗?如果有,怎么做?

【问题讨论】:

    标签: regex sublimetext2


    【解决方案1】:

    这种模式对我有用:

    (\w+)\s+(\d+)\s+(\w+)(\s+([\w\s]+ \w+$))?
    

    之前:

    之后:

    当然,\w 包含下划线,因此如有必要,请将\w 替换为[a-z0-9]

    更新

    这种模式更具体,应该更可靠:

    (\w+)\n(\d+)\n(\w+)(\n([^\n]*[^\w\n][^\n]*))?
    

    之前:

    之后:

    【讨论】:

    • 我在缺少的地方添加了一行示例数据:包含标点符号的单个“单词”也可以作为可选的第四个。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-05-25
    • 1970-01-01
    • 2016-06-06
    • 2018-08-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多