假设我的纯文本是
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 中的另一个捕获组命名捕获组的正则表达式是什么?