Цитата(source777 @ 15.4.2008, 01:02 ) | Я бы упростил до |
Я так полагаю, что автор не от нечего делать перечислил все суб домены, что бы их просто так вот упрощать.
Цитата(source777 @ 15.4.2008, 01:02 ) | watch[?]v= |
Забавно Это новый способ экранирования? Работать, конечно, будет, но лучше все-таки экранировать традиционным способом при помощи обратного слеша.
Цитата(Sannis @ 14.4.2008, 22:53 ) | [a-zA-Z0-9-_.=]\[/youtube\]#is |
А вот это уже грубая ошибка. Знак '-' в сете надо обязательно экранировать. И еще зачем тут знак '=' ?
Цитата(source777 @ 15.4.2008, 01:02 ) | ([a-zA-Z0-9-_.=]+)\[/youtube\]#is |
Нет смысла перечислять оба регистра букв, если стоит модификатор 'i'. Единственный случай, когда это может использоваться - это для русских букв при криво настроенной локали. Но в этом случае это может привести к багам с экзотическими кодировками.
Цитата(SelenIT @ 15.4.2008, 06:38 ) | Быстрее должно стать, если сделать скобки незахватывающими (?: ... ), а еще лучше однократными (?> ... ). |
Со вторым согласен, а вот насчет того что незахватывающие скобки сколько-нибудь сильно ускорят регулярку - очень сомневаюсь. Имхо, есть смысл только для того что бы удобнее было работать с результатами.
Цитата(Sannis @ 14.4.2008, 22:53 ) | Первая выглядит "приятнее", но какая работает быстрее? |
Хороший пример сложных регулярок, выглядящих "приятно", есть у Котерова. К примеру, http://dklab.ru/wsvn/lib/DbSimple/trunk/lib/DbSimple/Generic.php, метод _expandPlaceholdersFlow.
|