繁体   English   中英

正则表达式使用可能是值对一部分的分隔符解析多个键对值

[英]regexp parse multiple key pair values with delimiter that might be part of the value pair

我无法从字符串中获取每个密钥对值的组 输入字符串类似于:

sample1= "key1.1=val1,key2=2,key3=3,key4=last"

预期 4 组: key1.1=val1 key2=2 key3=3 key4=last

但也有可能

sample2= "key1.1=val11,key2.1=2,1,key33=3,key44=last"

请注意,在sample2中, key2.1的值为2,1

预期 4 组: key1.1=val11 key2.1=2,1 key33=3 key44=last

我无法获取所有组并专门处理分隔符的情况,对之间也可以是一个键的值的一部分。

我正在尝试类似: (?:^|,)([^=,]+)=([^=,]+)(?:,|$)

您可以拆分逗号,逗号后跟一个或多个除逗号以外的字符,后跟一个等号。 也就是说,根据正则表达式的匹配进行拆分

,(?=[^,]+=)

演示


您用于在此表达式的匹配项上拆分字符串的方法或函数取决于您使用的语言,但您尚未指定。 例如,在 Ruby 中,你会写

"key1.1=val11,key2.1=2,1,key33=3,key44=last".split(/,(?=[^,]+=)/)
  #=> ["key1.1=val11", "key2.1=2,1", "key33=3", "key44=last"]

表达式可以分解如下。

,        # match a comma
(?=      # begin a positive lookahead
  [^,]+  # match one or more characters other than commas
  =      # match an equal sign
)        # end positive lookahead

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM