Heim >Backend-Entwicklung >PHP-Tutorial >Wie erkennt man URLs unterschiedlicher Formate mithilfe regulärer Ausdrücke?

Wie erkennt man URLs unterschiedlicher Formate mithilfe regulärer Ausdrücke?

Susan Sarandon
Susan SarandonOriginal
2024-10-22 08:45:30656Durchsuche

How to Detect URLs of Varying Formats Using Regular Expressions?

Erkennen von URLs mit unterschiedlichen Formaten mithilfe regulärer Ausdrücke

Reguläre Ausdrücke bieten eine leistungsstarke Möglichkeit, Daten aus komplexen Zeichenfolgen, einschließlich URLs, zu extrahieren. Unabhängig davon, ob Sie mit URLs arbeiten, die „http://www“-Präfixe enthalten oder nicht, kann ein umfassender regulärer Ausdruck Ihren Anforderungen gerecht werden.

Der folgende Ausdruck wurde so erstellt, dass er URLs mit und ohne „http“ zuordnet Präfix „://www“:

((https?|ftp)://)?([a-z0-9+!*(),;?&=$_.-]+(:[a-z0-9+!*(),;?&=$_.-]+)?@)?([a-z0-9\-\.]*)\.(([a-z]{2,4})|([0-9]{1,3}\.([0-9]{1,3})\.([0-9]{1,3})))(:[0-9]{2,5})?(/([a-z0-9+$_%-]\.?)+)*/?(\?[a-z+&$_.-][a-z0-9;:@&%=+/$_.-]*)?(#[a-z_.-][a-z0-9+$%_.-]*)?

Dieser Ausdruck enthält die folgenden Komponenten:

  • Schema: „(https?|ftp)://“
  • Benutzer und Passwort: "([a-z0-9 !*(),;?&=$_.-] (:[a-z0-9 !*(),;?&=$_.-] )?@)"
  • Host oder IP-Adresse: "([a-z0-9-.]*).(([a-z]{2,4})|([0-9]{1 ,3}.([0-9]{1,3}).([0-9]{1,3})))"
  • Port: "(:[0-9]{2 ,5})?"
  • Pfad: "(/([a-z0-9 $_%-].?) )*/?"
  • GET-Abfrage: "(?a-z &$_.-*)?"
  • Anker: "(#a-z_.-*)?"

Um diesen Ausdruck zu verwenden, können Sie den folgenden PHP-Code verwenden :

if(preg_match("~^$regex$~i", 'www.example.com/etcetc', $m))
    var_dump($m);

if(preg_match("~^$regex$~i", 'http://www.example.com/etcetc', $m))
    var_dump($m);

Dieser Code stimmt erfolgreich mit beiden URLs überein, unabhängig davon, ob das Präfix „http://www“ vorhanden ist.

Das obige ist der detaillierte Inhalt vonWie erkennt man URLs unterschiedlicher Formate mithilfe regulärer Ausdrücke?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn