Url Matching с использованием регулярного выражения Грубера в PHP - PullRequest
5 голосов
/ 08 января 2010

как получить регулярное выражение, упомянутое в этой статье работа с preg_match в php?

<?php
preg_match("\b(([\w-]+://?|www[.])[^\s()<>]+(?:\([\w\d]+\)|([^[:punct:]\s]|/)))/i", $text, $matches);
print_r($matches);
?>

Используя приведенный выше код, я получаю следующую ошибку:

Warning: preg_match() [function.preg-match]: Delimiter must not be alphanumeric or backslash...

1 Ответ

7 голосов
/ 08 января 2010

Попробуйте это:

preg_match("#\b(([\w-]+://?|www[.])[^\s()<>]+(?:\([\w\d]+\)|([^[:punct:]\s]|/)))#i", $text, $matches);

Вам не хватает разделителей регулярных выражений (обычно /, но здесь используется #, потому что это удобнее для URL)

...