Perl regex-Ersetzung für eine URL

Ich bin versucht, einen komplexen regulären Ausdruck für URLs im Fließtext. Das Ziel ist, trennen Sie die URLs in den text.

Ich würde gerne etwas tun, wie die unten

perl -pe 's/regex/left $1 right/g;' inputfile

welche ersetzt alle vorkommen des regex mit dem übereinstimmenden Wert, umgeben von den Worten left und right Dies ist nur ein Vereinfachtes Beispiel um den Punkt zu illustrieren - das Reale Szenario hat jede Menge -e Ausdrücken und ich freue mich auf weitere hinzufügen, die für diesen speziellen passenden Zweck.

Regex ist whever entspricht einer URL. Ich begreife das passende URLs ist sehr schwierig und wahrscheinlich unmöglich zu ermitteln, alle Möglichkeiten, aber eine vernünftige Annäherung wäre in Ordnung. Ich fand eine solche Annäherung an http://daringfireball.net/2010/07/improved_regex_for_matching_urls.

Doch ich kann nicht, dass regex zu arbeiten, in ein perl-Konstrukt, wie oben beschrieben. Ich habe versucht, mit verschiedenen Trennzeichen als / zum Beispiel ~ aber ohne Erfolg.

  • möglich, Duplikat der Was ist die beste regular expression um zu überprüfen, ob ein string eine gültige URL?
  • Es gibt viele ähnliche Fragen, aber ich glaube nicht, es war Sie zu duplizieren, denn ich wurde gefragt, wie die Verwendung einer spezifischen komplexen regex (das sagt der Autor arbeitet in Perl) in einer bestimmten Weise auf ein Perl-Befehl-Linie (nämlich als -e Ausdruck). Ich habe die beste Antwort, die ich mit oben kommen kann, aber würde niemanden interessieren, demonstriert die Verwendung von Schwergewichts-regex als perl -pe Ausdruck.
InformationsquelleAutor starfry | 2013-03-05
Schreibe einen Kommentar