所以我有这个正则表达式:
=([0-9A-Za-z_-]+),?
我需要一个像:
这样的字符串foo=bar,pine=apple,tree,bar=bie
or
foo=bar,pine=apple,tree
or
pine=apple,tree
正则表达式适用于我只有1个值的情况。 但是因为我们在密钥的值列表中有逗号。 正则表达式刚刚解决,我的代码完成了我想要它做的一半,但没有获得第二个值。
如何修复我的正则表达式以获取两个值,无论它在字符串中的哪个位置? 最后,在另外两个人之间。
我尝试了一些东西,但无法理解。
尝试1:
=([0-9A-Za-z,_-]+),=?
在这种情况下,它匹配中间的那个,但是在其他情况下失败,因为=不存在。
尝试2:
=[0-9A-Za-z_-]+([,]+[0-9A-Za-z_-]*),?
匹配酒吧,松树和树,例如酒吧
EDIT ::
这似乎也许有用......
=('[0-9A-Za-z,_-]+'),*|=([0-9A-Za-z_-]+),*
如果我使用多值的引号..
答案 0 :(得分:1)
您可以拆分变量名称 - 只留下值:
s := regexp.MustCompile("[^,\\s]+=").Split("foo=bar,pine=apple,tree,bar=bie", -1)
fmt.Println(s)
# => [ "bar", "apple,tree", "bie"]