|
|
|
| Привет! Уже долго пытаюсь найти ошибку в запросе но не могу... нужна ваша помощь.
Есть рег выражение:
if (preg_match("/^(https?:\/\/www\.|https?:\/\/|www\.)(\S+[^\s\t\n\r\\:\|\*<>])(\.mp3)$/Diu", $file, $match))
Почему ссылка
http://mp3.name.ru/mp3-Carly_*Jepsen-Call_Me_Maybe_(Remix).mp3
пропускается ведь в ней есть символ "*" ? | |
|
|
|
|
автор: .... (10.02.2013 в 03:46) |
|
|
для: danya_nyjniy
(09.02.2013 в 20:45)
| | почему-то у меня совпал такой вариант... я вообще в шоке :)
это (\S+[^\s\\:\|\*<>]) ,если выкинуть всё лишнее, зачватит только один непробельный символ
, и всего один не из этого набора в [],
а это (\.mp3)$ .... никогда не пойму оно совпало
во первых $ .... по логике вообще не должно было
>модификатор
/D - dollar end only
Метасимвол $ не будет совпадать с позицией перед переводом строки \n, если тот последний в тексте.
Не имеет значения, если включен модификатор /m.
a (\.mp3) ???? | |
|
|
|
|
автор: ..... (10.02.2013 в 04:23) |
|
|
для: ....
(10.02.2013 в 03:46)
| | понял где ошибся ...... \S+ это не один символ | |
|
|
|
|
|
|
|
для: .....
(10.02.2013 в 04:23)
| | Убрал /D. Всё равно пропускает со звёздочкой... Есть варианты какие-нибудь? | |
|
|
|