【发布时间】:2017-03-28 07:01:14
【问题描述】:
我想使用正则表达式完成以下操作:
输入
M1 hello world 1234_5678 ip som lorem 9321_1231 iste natus error sit voluptatem 4313_4351 ratione voluptatem sequi nesciunt 4312_1234
M2 magnam aliquam 4351_3143 sed quia non numquam 3123_1432
输出
M1 hello world 1234 5678
M1 ip som lorem 9321 1231
M1 iste natus error sit voluptatem 4313 4351
M2 magnam aliquam 4351 3143
M2 sed quia non numquam 3123 1432
正则表达式匹配
(M[1|2])?\s+(\D+)(\d{4})_(\d{4})(\n)?
和子
\1\t\2\t\3\t\4\n
让我靠近(见:https://regex101.com/r/tKgCBi/1/)
M1 hello world 1234 5678
ip som lorem 9321 1231
iste natus error sit voluptatem 4313 4351
ratione voluptatem sequi nesciunt 4312 1234
M2 magnam aliquam 4351 3143
sed quia non numquam 3123 1432
如果没有进行此(可选)匹配,我如何使用最后一个(可选)匹配组?我假设它在(M [1 | 2])时设置\ 1 = NULL?失败。
(我正在使用 Python 的“re”模块)
【问题讨论】:
-
这里真正的问题是什么?您的`“让我靠近”和“当没有进行此(可选)匹配时,我如何使用最后一个(可选)匹配组?我假设它在(M [1 | 2])时设置\ 1 = NULL?失败。”没有帮助。
-
我不确定你的意思。我可以提供什么说明?
-
我正在使用 python 的“re”模块。 (可能应该提到这一点。我编辑了我的帖子。)
-
我的意思是
(M[1|2])?不是 last 组。你得到的结果到底有什么问题? -
你可以这样做 - ideone.com/gmUYDS(也许)。
标签: regex capture-group