用于标记以逗号(,)分隔的键=值对列表的正则表达式,其中Value本身可以包含逗号(,)



我有一个需求,我需要标记用逗号分隔的键=值对列表。例:$val1=abc, $val2=cde, $val3=efg

期望输出:6个token

    val1美元
  1. abc val2美元
  2. cde
  3. val3美元
  4. efg

我正在使用解决上述问题的正则表达式([^" =,]*("[^"]*")[^" =,]*)|[^" =,]+。但是,当key=value对的中有逗号时,它不处理这种情况。

Ex: $val1=abc,AB, $val2=cde, $val3=efg

期望输出:6个token

    val1美元
  1. abc, AB
  2. val2美元
  3. cde
  4. val3美元
  5. efg

但是使用上面的正则表达式,我得到的输出如下所示:输出:7个token

    val1美元
  1. abc
  2. AB
  3. val2美元
  4. cde
  5. val3美元
  6. efg

谁能提供一个合适的正则表达式适合上面的情况

[^= ]+(?! $)

实际操作

读取任意数量的字符,这些字符不是=或空格,并且后面没有空格和$

最新更新