Regex: text zwischen dem ersten auftreten von Muster
/url?q=http://it.wikipedia.org/wiki/Spider-Man_(film)&sa=U&ei=iavVUKuFGsrNswbz74GQBA&ved=0CBYQFjAA&usg=AFQjCNEth5YspFPWp6CInyAfknlEvVgIfa
Ich brauche, um nur
Habe ich versucht mit \?q=(.*)&
aber Sie betrachten die letzten vorkommen von &
, so bekomme ich
http://it.wikipedia.org/wiki/Spider-Man_(film)&sa=U&ei=iavVUKuFGsrNswbz74GQBA&ved=0CBYQFjAA
http://rubular.com/r/yBiGIMQTUV
Du musst angemeldet sein, um einen Kommentar abzugeben.
Müssen Sie nur ungern matching zu entsprechen, bis die ersten
&
. Mit gierige Suche (d.h. mit*
statt*?
), Ihre Muster match so lange Schnur wie möglich so zu befriedigen das vollständige Muster.Nutzen Sie also diese: -
Oder Sie können auch Charakter-Klasse, die mit negiert
&
entspricht jedem Zeichen außer&
: -Beachten Sie, dass, wenn Sie nicht möchten, dass Ihre
(.*?)
zu Spiel leerer string ist, dann sollten Sie+
Quantifizierer. Es entspricht1 or more
auftreten.([^&]*)
effizienter wäre, dass es einfach zu tun faul.Die Sie gerade brauchen, um das
*
Betreiber faul, und Sie tun es, indem Sie eine?
nach. So wäre es.*?
Faul (oder nicht-gierig) bedeutet, dass wird der stop nach dem ersten auftreten, entsprechen, anstatt die Letzte.
Versuchen:
und erfassen der ersten Gruppe.
Wenn Ihr in python dann
sub(r'(\/url\?q\=)|[&][\S]*','',url)
tun sollte Ihre Arbeit