Ich habe Probe Zeichenfolge wie:Regex Übereinstimmung für ein bestimmtes Muster ohne ein spezifisches Muster
'&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'
Mein Ziel ist es, den Text von ‚tooltext=
‘ bis zum ersten auszuwählen Vorkommen von "&
", dem kein \\
vorausgeht. Ich verwende den folgenden regulären Ausdruck:
/(tooltext=)(.*)([^\\])(&)/
und die .match()
Funktion.
Es ist für die zweite Saite arbeitet gut, aber für die erste Saite bis zu dem letzten Auftreten von ‚&
‘ nicht durch \\
voran Auswahl es ist.
var a = '&label=20:01:27&tooltext=abc\&|\|cba&value=6|59|58|89&color=ff0000|00ffff',
b = a.match(/(tooltext=)(.*)([^\\])(&)(.*[^\\]&)?/i)
Ergebnis
b = ["tooltext=abc\&|\|cba&value=40|84|40|62&", "tooltext=", "abc\&|\|cba&value=40|84|40|6", "2", "&"]
Aber was ich brauche, ist:
b = ["tooltext=abc&||cba&", "tooltext=", "abc&||cb", "a", "&"]
Vielen Dank für die Website-Link! regex101.com hat ein Lesezeichen gesetzt. –
Danke für die Hilfe. –
@ shA.t - Ich habe Angst, aber es ist der folgende Text passend 'value = 66,34 | 77,99 & tooltext = av \ &, \, | \ & \ | ^' Aber es sollte idealerweise nicht, weil es hat nicht nicht entkommen & –