|
|
|
| Вот сама регулярка
// <?
$pattern = "/(?:http:\/\/)?((?:www)?[a-z0-9]{2,3}[a-z0-9-.]{0,59}[a-z0-9]{1}\.{1}(?:aero|asia|biz|cat|com|coop|edu|gov|info|int|jobs|mil|mobi|muse|name|net|org|pro|tel|trav|ac|ad|ae|af|ag|ai|al|am|an|ao|aq|ar|as|at|au|aw|ax|az|ba|bb|bd|be|bf|bg|bh|bi|bj|bm|bn|bo|br|bs|bt|bv|no|bw|by|bz|ca|cc|cd|cf|cg|ch|ci|ck|cl|cm|cn|co|cr|cu|cv|cx|cy|cz|de|dj|dk|dm|do|dz|ec|ee|eg|er|es|et|eu|euro|fi|fj|fk|fm|fo|fr|ga|gb|uk|gd|ge|gf|gg|gh|gi|gl|gm|gn|gp|gq|gr|gs|gt|gu|gw|gy|hk|hm|hn|hr|ht|hu|id|ie|il|im|in|io|iq|ir|is|it|je|jm|jo|jp|ke|kg|kh|ki|km|kn|kp|kr|kw|ky|kz|la|lb|lc|li|lk|lr|ls|lt|lu|lv|ly|ma|mc|md|me|mg|mh|mk|ml|mm|mn|mo|mp|mq|mr|ms|mt|mu|mv|mw|mx|my|mz|na|nc|ne|nf|ng|ni|nl|np|nr|nu|nz|om|pa|pe|pf|pg|ph|pk|pl|pm|pn|pr|ps|pt|pw|py|qa|re|ro|rs|yu|ru|su|rw|sa|sb|sc|sd|se|sg|sh|si|sj|sk|sl|sm|sn|so|sr|st|sv|sy|sz|tc|td|tf|tg|th|tj|tk|tl|tp|tm|tn|to|tr|tt|tv|tw|tz|ua|ug|us|uy|uz|va|vc|ve|vg|vi|vn|vu|wf|ws|ye|yt|za|zm|zw{1})(?:\/)?[\?\/\.\&\=\%\#\+a-z0-9_-]{0,2048}(?::80)?)\b/uie";
|
Не совсем корректно выделяет ссылки [url]http://mishustin.net.ru/gb.php?p=3[/url.] | |
|
|
|
|
|
|
|
для: Ури Геллер
(21.03.2010 в 14:39)
| | (?:http:\/\/)? это пустая строка или http://
(?:www)? это пустая строка или www (почему-то без точки)
дальше идёт то что не может быть пустой строкой
[a-z0-9]{2,3} 2-3 цифро-буквы
сразу за ними
[a-z0-9-.]{0,59} "пусто" или не более 59и цифро-букв-минусо-точек (минус я-бы заэкранировал или поменял местами с точкой)
[a-z0-9]{1}\.{1} одна цифро-буква и точка после неё (можно было и просто сделать [a-z0-9]\. )
(?:aero|.........|zw{1}) не понял zw{1} почему :) zw{1} === zw zw{2} === zww ....... (вроде даже Фридл делал [a-z]{2} вместо таких двухбуквенных перечислений, не вдаваясь в подробности бывает-ли домен xxx.jz )
дальше необязательное
(?:\/)? это лишнее , поскольку / так и так совпадёт если нужно в следующей части шаблона
[\?\/\.\&\=\%\#\+a-z0-9_-]{0,2048} думаю понятно
(?::80)? обычно :Порт бывает сразу за именем хоста
не Фридл составил это выражение :)
Вы не волнуйтесь ,) просто таким нехитрым способом нелья понять ссылка в тексте или имя файла , с расширением например .pl бывают и домены и файлы , да и домены в зоне ру или рф (не помню точно) бывают и русскими буквами | |
|
|
|