2

假设我的纯文本是

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

4

0 回答 0