Angenommen, der zu durchsuchende Text ist pqr
.Wie kann man nach Text suchen, der nicht Teil einer URL ist?
"http://abc.zzz/pqr/xyz" -> Should not match
"/pqr/" -> Should Match
"pqr" -> Should Match
"http://abc.zzz/pqr/pqr/" -> Should not match
"http://abc.zzz/pqr/pqr/ pqr" -> Should match the last "pqr"
"www.pqr.zzz" -> Should not match
ich die folgende regex versucht, mit,
((?:(?:(?:https?|ftp|file|mailto):)|www)[^ ]+?)?(pqr)
Ich sah dann für group 1
, wenn es leer ist, dann wurde ich es als Spiel betrachten. Aber das scheitert an http://abc.zzz/pqr/pqr/
Hilfe hier zu erkennen, wenn der Text nicht Teil einer URL ist?
Der schlimmste Fall ist, dass ich zuerst alle URLs erkennen und dann die Start- und Endindizes der übereinstimmenden URLs speichern soll. Versuchen Sie dann, pqr
übereinzustimmen und alle diejenigen auszuschließen, die Teil der URL sind. Ich habe überlegt, ob es etwas gibt, das besser gemacht werden kann.
Wofür brauchen Sie 'pqr'? Durch etwas ersetzen? Der beste Weg ist, die URL und dann den 'pqr' (in einer Alternationsgruppe) zu finden. –
In meinem Fall ist 'pqr' selbst ein regulärer Ausdruck, der nicht immer Teil einer URL sein kann. – pratZ
Der schlimmste Fall ist, dass ich zuerst alle URLs erkennen und dann die Start- und Endindizes der übereinstimmenden URLs speichern soll. Dann versuche, 'pqr' zu finden und schließe alle aus, die Teil der URL sind. – pratZ