我为样本字符串:正则表达式匹配特定模式排除特定模式
'&label=20:01:27&tooltext=abc\&|\|cba&value=6|59|58|89&color=ff0000|00ffff'
'&label=20:01:27&tooltext=abc\&|\|cba&value=6|59|58|89'
我的目标是选择“tooltext=
”直到第一文本发生'&
',这之前没有\\
。我正在使用以下正则表达式:
/(tooltext=)(.*)([^\\])(&)/
和.match()
函数。
对于第二个字符串它正在工作正常,但对于第一个字符串,它正在选择最后一次出现的'&
',前面没有\\
。
var a = '&label=20:01:27&tooltext=abc\&|\|cba&value=6|59|58|89&color=ff0000|00ffff',
b = a.match(/(tooltext=)(.*)([^\\])(&)(.*[^\\]&)?/i)
结果,
b = ["tooltext=abc\&|\|cba&value=40|84|40|62&", "tooltext=", "abc\&|\|cba&value=40|84|40|6", "2", "&"]
但我需要的是:
b = ["tooltext=abc&||cba&", "tooltext=", "abc&||cb", "a", "&"]
感谢您的网站链接! regex101.com书签。 –
感谢您的帮助。 –
@ shA.t - 恐怕但它与以下文字匹配 'value = 66,34 | 77,99&tooltext = av \&,\,| \&\ |,'' 但理想情况下,它不应该是因为它没有逃脱& –