我有一个看起来像这样的序列化对象(不包括反向逗号):
'key1:value1,key2:value2,key3:value3'
它也可能看起来像这样:
'key1:value1,key3:value3'
或者
'key1:value1'
或者
''(可能为空)
在这一点上,我有这个令牌化逻辑将这个字符串分解(这有点冗长)。有没有一个正则表达式可以帮助我为上述任何字符串提取给定键的值(或返回null)?
如果您知道确切的界限,则关键字匹配非常简单。在这种情况下,您将单撇号作为字符串边界,将逗号作为分隔符。因此,这是匹配给定键值的正则表达式(基于您的输入示例):
(?<=key1\:).+?(?=,|'|$) --> finds 3 "value1" matches
(?<=key2\:).+?(?=,|'|$) --> finds 1 "value2" match
(?<=key3\:).+?(?=,|'|$) --> finds 2 "value3" matches
(?<=key4\:).+?(?=,|'|$) --> no match
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句