it-swarm.com.de

Facebook Profil URL regulärer Ausdruck

Angesichts der folgenden Facebook-Profil- und Seiten-URLs ist es meine Absicht, Profil-IDs oder Benutzernamen in die erste Übereinstimmungsposition zu extrahieren.

http://www.facebook.com/profile.php?id=123456789
http://www.facebook.com/someusername
www.facebook.com/pages/Regular-Expressions/207279373093

Der Regex, den ich bisher habe, sieht so aus

(?:http:\/\/)?(?:www.)?facebook.com\/(?:(?:\w)*#!\/)?(?:pages\/)?(?:[?\w\-]*\/)?(?:profile.php\?id=(\d.*))?([\w\-]*)?

Was zu folgenden Ergebnissen führt:

Ergebnis 1
1. 123456789

Ergebnis 2
1.
2. ein Benutzername

Ergebnis 3
1.
2. 207279373093

Das ideale Ergebnis würde so aussehen:

Ergebnis 1
1. 123456789

Ergebnis 2
1. ein Benutzername

Ergebnis 3
1. 207279373093

Das heißt, ich möchte, dass die Profil-ID immer an erster Stelle steht.

Es wäre auch ideal, wenn www.facebook.com/ und facebook.com/ nicht zusammenpassen würden.

17
Josh Deeden

Ich würde empfehlen Rad Software Regular Expression Designer .

Auch dieses Online-Tool ist großartig https://regex101.com/ (obwohl die meisten Leute es vorziehen http://regexr.com/ )

(?:(?:http|https):\/\/)?(?:www.)?facebook.com\/(?:(?:\w)*#!\/)?(?:pages\/)?(?:[?\w\-]*\/)?(?:profile.php\?id=(?=\d.*))?([\w\-]*)?
16
n00b

Ich habe vor einiger Zeit einen Gist gemacht, der gegen die angegebenen Beispiele funktioniert:

# Matches patterns such as:
#    http://www.facebook.com/my_page_id => my_page_id
#    http://www.facebook.com/#!/my_page_id => my_page_id
#    http://www.facebook.com/pages/Paris-France/Vanity-Url/123456?v=app_555 => 45678
#    http://www.facebook.com/pages/Vanity-Url/45678 => 45678
#    http://www.facebook.com/#!/page_with_1_number => page_with_1_number
#    http://www.facebook.com/bounce_page#!/pages/Vanity-Url/45678 => 45678
#    http://www.facebook.com/bounce_page#!/my_page_id?v=app_166292090072334 => my_page_id

/(?:http:\/\/)?(?:www\.)?facebook\.com\/(?:(?:\w)*#!\/)?(?:pages\/)?(?:[\w\-]*\/)*([\w\-]*)/

So erhalten Sie die neueste Version: https://Gist.github.com/733592

9
marcgg

Das vollständigste Muster für die Facebook-Profil-URL:

/(?:https?:\/\/)?(?:www\.)?facebook\.com\/.(?:(?:\w)*#!\/)?(?:pages\/)?(?:[\w\-]*\/)*([\w\-\.]*)/

Es erkennt alle Fälle + einen wichtigen Unterschied. Andere Regex-Muster erkennen http://www.facebook.com/ als gültige Facebook-Profil-URL, obwohl es sich nicht um eine gültige Profil-URL handelt. Es ist nur die ursprüngliche Facebook-URL und keine Benutzer- oder Seitenadresse. Dieser reguläre Ausdruck kann jedoch eine normale URL von einer Profil- und Seiten-URL unterscheiden und akzeptiert nur die gültige.

2
Iman Sedighi

Nur dieser reguläre Ausdruck funktioniert korrekt für alle FB-URLs:

/(?:https?:\/\/)?(?:www\.)?(?:facebook|fb|m\.facebook)\.(?:com|me)\/(?:(?:\w)*#!\/)?(?:pages\/)?(?:[\w\-]*\/)*([\w\-\.]+)(?:\/)?/i
1
Mark Jobs

Regex, mit dem Profilseiten korrekt mit einem gekennzeichnet werden. im Namen wie www.facebook.com/my.name und es wird auch www.facebook.com/ oder home.php ausgeschlossen, da es sich nicht um eine gültige Facebook-Seite handelt.

https://regex101.com/r/koN8C2/2

(?:(?:http|https):\/\/)?(?:www.|m.)?facebook.com\/(?!home.php)(?:(?:\w)*#!\/)?(?:pages\/)?(?:[?\w\-]*\/)?(?:profile.php\?id=(?=\d.*))?([\w\.-]+)

Lassen Sie mich wissen, wenn Sie etwas gefunden haben, das nicht übereinstimmt.

0
spa900

Spiele facebook.com , m.facebook.com , mbasic.facebook.com und fb.me (kurzer Link)

/(?:https?:\/\/)?(?:www\.)?(mbasic.facebook|m\.facebook|facebook|fb)\.(com|me)\/(?:(?:\w\.)*#!\/)?(?:pages\/)?(?:[\w\-\.]*\/)*([\w\-\.]*)/ig

Facebook URL Regex DEMO

 Facebook URL regex DEMO

0
Sender

Ich habe jede einzelne Antwort oben ausprobiert und jede funktioniert aus mindestens einem Grund nicht. Dies ist für OP höchstwahrscheinlich nicht hilfreich, aber wenn jemand wie ich dies bei einer Websuche findet, glaube ich, dass dies die richtige Antwort ist:

^(?:.*)\/(?:pages\/[[:alnum:]-]+\/)?(?:profile\.php\?id=)?([[:alnum:].]+)

Unterstützt im Grunde alles, was mir einfällt, außer zu überprüfen, ob die Domain facebook.com enthält. Wenn Sie überprüfen müssen, ob die URL gültig ist, sollte dies außerhalb eines regulären Ausdrucks erfolgen, um sicherzustellen, dass die Seite oder das Profil tatsächlich vorhanden ist. Warum zweimal überprüfen, besonders wenn eine der Prüfungen unvollständig ist?

  • Schneidet das erste Zeichen nicht ab
  • Ergreift URLs mit Punkten
  • Ignoriert überflüssige GET-Parameter
  • Unterstützt/Benutzernamen wie von der Facebook-App bereitgestellt
  • Unterstützt beide Profil-URL-Strukturen
  • Stimmt nicht mit facebook.com/ oder facebook.com überein (indem Sie sie ignorieren)
  • Funktioniert mit und ohne www. (indem du es ignorierst)
  • Unterstützt sowohl http als auch https (indem sie ignoriert werden)
  • Unterstützt sowohl facebook.com als auch fb.com (indem sie ignoriert werden)
  • Unterstützt Seiten mit Sonderzeichen im Namen (indem sie ignoriert werden)
  • Unterstützt #! (indem du es ignorierst)
  • Unterstützt bounce_page #! (indem du es ignorierst)
0
jkmartindale