J'ai essayé d'utiliser grubers latest url matching regex dans un projet PHP.Grubers nouvelle et améliorée URL reconnaissant regex
Pour le tester, j'ai jeté ensemble quelque chose de très simple:
$regex = "(?i)\b((?:[a-z][\w-]+:(?:/{1,3}|[a-z0-9%])|www\d{0,3}[.]|[a-z0-9.\-]+[.][a-z]{2,4}/)(?:[^\s()<>]+|\(([^\s()<>]+|(\([^\s()<>]+\)))*\))+(?:\(([^\s()<>]+|(\([^\s()<>]+\)))*\)|[^\s`!()\[\]{};:"'.,<>?«»“”‘’]))";
$array = pret_match_all($regex, $theblockofurltext);
print_r($array);
Le premier problème était le "échapperait à une chaîne, selon laquelle j'Enveloppez la regex avec, donc je viens enlevai L'utilisation de ce. est personnel et je n'aurai jamais "n'importe où près d'une url de toute façon. Cela m'a laissé avec une nouvelle regex.
$regex = "(?i)\b((?:[a-z][\w-]+:(?:/{1,3}|[a-z0-9%])|www\d{0,3}[.]|[a-z0-9.\-]+[.][a-z]{2,4}/)(?:[^\s()<>]+|\(([^\s()<>]+|(\([^\s()<>]+\)))*\))+(?:\(([^\s()<>]+|(\([^\s()<>]+\)))*\)|[^\s`!()\[\]{};:'.,<>?«»“”‘’]))";
Gonflé à j'entrerais couru mon petit script et il m'a donné l'erreur suivante:
Warning: preg_split() [function.preg-split]: Unknown modifier '\' in D:\wwwroot\xxx\index.php on line 14
Malheureusement ma classe REGEX à l'école n'a pas été appris à approcher les niveaux de cette regex exige , et je n'ai aucune idée par où commencer à corriger cela pour une utilisation avec PHP. Toute aide serait grandement appréciée. Sans doute, je suis sans doute faire quelque chose de stupide aussi, donc s'il vous plaît allez-y doucement sur moi :)
Jon
Il fait. La regex fonctionne parfaitement maintenant. Merci pour votre explication de pourquoi ça ne fonctionnait pas trop :) – JonB
@JonB: Ouais je l'ai juste essayé aussi;) –