Возможно, потому что регулярное выражение написано в синтаксисе PCRE.Посмотрите, есть ли у вас (или вы можете установить) программу pcregrep
в вашей системе - она имеет тот же синтаксис, что и grep
, но принимает Perl-совместимые регулярные выражения - и вы должны быть в состоянии заставить это работать.
Другой вариант - попробовать опцию -P
для grep
, но на странице руководства написано, что это «очень экспериментально», поэтому она может или не может работать на самом деле.
Я скажу, что вы должны тщательно подумать о том,это действительно уместно использовать это или любое регулярное выражение для проверки URL.Если вы хотите получить правильную проверку, вам, вероятно, будет лучше найти или написать небольшой скрипт, например, на Perl, чтобы использовать средства проверки URL языка.
EDIT : В ответ на ваше изменение в вопросе я не заметил, что это регулярное выражение также допустимо в «расширенном» синтаксисе.Я не думаю, что вы можете стать лучше / быстрее, чем это.