假设我的纯文本是
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中的另一个捕获组?