Sublime Text正则表达式与可选组

时间:2014-02-04 23:36:37

标签: regex sublimetext2

示例数据(包括换行符)

Alpha1
100
Bravo2
something else
Charlie3
200
Delta4
A==1
Echo5
300
Foxtrot6

我想获得输出:

Alpha1 100 Bravo2 something else
Charlie3 200 Delta4 A==1
Echo5 300 Foxtrot6

模式是:

AlphaNumeric
Numeric
AlphaNumeric
value that is not a single alphanumeric "word"

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

1 个答案:

答案 0 :(得分:3)

这种模式对我有用:

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

在:
Before

在:
After

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

<强>更新

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

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

在:
Before

在:
After