1
34
添加了转义选项。 添加了另一个转义选项。 您必须通过删除任何转义字符和周围的引号来清理键/值。 |
2
2
MizardX的回答很好。小麻烦-它不允许在名称等周围使用空格(这可能无关紧要),它收集引号和引用值(这也可能无关紧要),并且它没有在引用值中嵌入双引号字符的转义机制(同样,这可能无关紧要)。 如前所述,该模式适用于大多数扩展正则表达式系统。修复这些小问题可能需要使用(比如)Perl。此版本使用双引号进行转义——因此a=“a”“b”生成一个字段值“a”“b”(这并不完美,但可以很容易地在以后修复):
此外,您必须使用$2或$3来收集值,而根据MizardX的回答,您只需使用$2。因此,它不是那么容易或好,但它涵盖了一些边缘情况。如果简单的答案足够,就使用它。 测试脚本:
这句话的意思是,2美元或3美元是未定义的——准确地说。 |
3
0
如果你能使用,我会这样做
qr/ (?<key> (?: [^=,\\] | (?&escape) )++ # Prevent null keys ) \s*+ = \s*+ (?<value> (?"ed) | (?: [^=,\s\\] | (?&escape) )++ # Prevent null value ( use quotes for that ) ) (?(DEFINE) (?<escape>\\.) (?<quoted> " (?: (?&escaped) | [^"\\] )*+ " ) ) /x
这些元素将通过
|
lonix · 使用sed从JSON中提取非贪婪正则表达式 1 年前 |
Dima Malko · 如何在指定符号前添加符号? 2 年前 |
shekharsabale · 从列表元素捕获子字符串 2 年前 |
Katia · 根据特定规则进行多行匹配 2 年前 |
MHA · Pandas str.extract()以字母结尾的数字 2 年前 |
Slava Vir · 如何查找后面“/”之间的最后一组 2 年前 |