我有以下数据:
msg=hello msg=hellohello age: s35 { getAge } for name=peter id="123"
我想使用正则表达式在以下第1组(冒号左侧)和第2组(冒号右侧)结构中对它们进行分类:
msg : hello
msg : hello/hello
age : thirtyfive { getAge } for
name: peter'
id : "123"
我想出了以下正则表达式
([^,=\s]*)=([^,\s]*)|([^= ]*): ([^=]*for)
除了我有一个不幸的约束外,这个工作做得很好。我只能允许两个正则表达式组。你可以看到"年龄"属性和对应的密钥相应地在组3和组4中。
如何在正则表达式中将它们分组为两组?
答案 0 :(得分:0)
你正在使用哪种编程语言?
由于您没有回复,我会为python
和php
提供正则表达式:
<强> PYTHON 强>:
import re
result = re.sub(r"([a-z]+)(?:=|:\s+)(\d+.*?for |[^ ]+)", "\\1: \\2\n", original, 0, re.IGNORECASE | re.DOTALL | re.MULTILINE)
<强> PHP 强>:
$result = preg_replace('/([a-z]+)(?:=|:\s+)(\d+.*?for |[^ ]+)/sim', '\1: \2\n', $original);
输出:
msg: hello
msg: hellohello
age: 35 { getAge } for
name: peter
id: "123"