我爲樣本字符串:正則表達式匹配特定模式排除特定模式
'&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 \&,\,| \&\ |,'' 但理想情況下,它不應該是因爲它沒有逃脫& –