【发布时间】:2020-02-18 22:24:35
【问题描述】:
我需要使用正则表达式从字符串中获取键值对。
字符串类似于
country=xxx,state=yyy,city=zzz,
然后这个正则表达式
([^,=]+?)(=)([^,=]+?),
给我 3 个不同的键值对,但如果我有多个逗号分隔的值,则只选择第一个。
例如
country=xxx,state=yyy,city=zzz,pqr,
那么对于城市pqr 被删除。我想同时拥有城市的zzz,pqr。
【问题讨论】:
-
如果末尾应该有逗号,请尝试
([^,=\n]+?)(=)([^,=\n]+(?:,[^,=\n]+)*),regex101.com/r/srQPam/1 -
(\w+)=(.*?)(?=,(?:\w+=|$))- demo. -
也许是这个
(?:[^,=]+?)=(([^\n](?!=))+),。 -
您是否致力于该输入格式?这非常可怕——逗号分隔对,除非它分隔值。哎呀!
标签: regex