捕获组的名称基于PCRE正则表达式中的另一个捕获组

时间:2014-02-11 18:40:42

标签: regex pcre capturing-group

假设我的纯文本是

foo=2 bar=3 apple="hello" msg="hello world" host="stackoverflow.com"

我想捕获键值对,但要将值捕获组命名为相应的键。例如,如果我要对正则表达式进行硬编码,那就像是:

foo=(?<foo>\d+) bar=(?<bar>\d+) apple=(?<apple>".*?") msg=(?<msg>".*?") host=(?<host>".*?")

演示:http://regex101.com/r/wC8nF5

但是,我不想硬编码,因为我不知道密钥的名称是什么。因此,无法重命名捕获组,我得到了与此相近的

(?<key>\w+)=(?<value>".*?"|\S+)

演示:http://regex101.com/r/hV8oZ2

据我所知,捕获组的名称只能是单词字符(只允许使用特殊字符_),但假设所有键名都是单词字符,那么基于捕获组命名的正则表达式是什么关闭PCRE中的另一个捕获组?

0 个答案:

没有答案