正则表达式模式选择交替匹配

时间:2013-10-07 20:10:34

标签: regex

正则表达式

/("[^:=,]+":")(.*?)("}*\]*}*,")/

字符串:

"foo":""fooooooooooooooooooo"foooo","bar":"barrrrrrrrr""barrrrrr","fooo":"foooooo","bar":"barrrrrr","

匹配第一个和第三个模式

http://rubular.com/r/S5fbsSfCjy

字符串:

"bar":"barrrrrrrrr""barrrrrr","fooo":"foooooo","bar":"barrrrrr","foo":""fooooooooooooooooooo"foooo","

匹配第一个和第三个模式

http://rubular.com/r/hDfcBCkB2o

如何使它匹配所有4个模式匹配上面的任何字符串?

1 个答案:

答案 0 :(得分:1)

这是因为正则表达式模式末尾的,"会使用以下字符串中的引号。所以,它不匹配。实际上,正则表达式只匹配每个备用匹配字符串。

您需要使用预测:

/("[^:=,]+":")(.*?)("}*\]*}*(?=,"))/

http://rubular.com/r/6v2OjPtmVM