
Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
27.10.2005, 13:36
|
|||
|---|---|---|---|
(PHP) Тонкости работы с регулярными выражениями |
|||
|
#18+
Был сегодня удивлен при составлении нового рега. :) Оказывается, если регулярное выражение (паттерн) заключено в двойные кавычки и, например, требуется в шаблоне выделить переменную в виде $foo, то необходимо использовать двойное экранирование - \\$(.*). Теперь на примере. Требуется пропарсить ниже указанный файл и получить в нем все пары KЛЮЧ => ЗНАЧЕНИЕ. Сам файл (config.php): Код: plaintext 1. 2. 3. 4. 5. 6. Скрипт: Код: plaintext 1. 2. 3. 4. 5. 6. 7. Хотя в с другой стороны все объяснимо - PHP при разборе строки шаблона "/\\$(.*)\s=\s\'(.*)\';/siU" анализирует ее на наличие переменных, т.к. строка заключена в двойные кавычки. Для того, что избежать этого используется спец. символ \. Но это пока еще строка, а если рассматривать это как регулярное выражение, то \ является спец. символом, который в свою очередь тоже следует экранировать. Как видите, если записать рег в одинарных кавычках, то двойного \\ уже не требуется. Код: plaintext 1. 2. 3. Вот такая занятная вещь. P.S. Скорее всего, это уже и написано где-то, но пока ссылку не нашел. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
27.10.2005, 13:43
|
|||
|---|---|---|---|
|
|||
(PHP) Тонкости работы с регулярными выражениями |
|||
|
#18+
Регулярные выражения тут абсолютно не при чём, а кого-то нужно послать читать FAQ: debug + manual hint: echo "/\\$(.*)\s=\s\'(.*)\';/siU" + echo '/\$(.*)\s=\s\'(.*)\';/siU' ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
27.10.2005, 14:32
|
|||
|---|---|---|---|
(PHP) Тонкости работы с регулярными выражениями |
|||
|
#18+
2 * Спасибо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
27.10.2005, 15:23
|
|||
|---|---|---|---|
(PHP) Тонкости работы с регулярными выражениями |
|||
|
#18+
Berkut...все... Бред какой то ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
27.10.2005, 16:07
|
|||
|---|---|---|---|
(PHP) Тонкости работы с регулярными выражениями |
|||
|
#18+
VERS Berkut...все... Бред какой то Если вы это утверждаете, то по крайней мере аргументируйте то, о чем говорите! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
29.10.2005, 09:21
|
|||
|---|---|---|---|
|
|||
(PHP) Тонкости работы с регулярными выражениями |
|||
|
#18+
Как можно указать preg_match искать в строке любые символы за исключением определенной последовательности? Есть строка: [npc=123]npc[npc]blablalba[/npc] bbbbbb [npc]bbbb[/npc] Есть шаблон: \[npc(=(\s))*\](.*)\[/npc\] Необходимо, чтобы он выдал такой массив: 0=>[npc=123]npc/[npc]blablalba[/npc] 1=>=123 2=>123 3=>npc[npc]blablalba Я знаю о конструкции .[^<символы>]*, но в моем случае нужна определенная комбинация [/npc], в любых других случаях, строка должна включать все. Помогите, кто, чем сможет, а еще лучше, где почитать о синтаксисе регулярных выражений. Ибо в хелпах ПХП вообще мало путного написано. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
29.10.2005, 10:23
|
|||
|---|---|---|---|
|
|||
(PHP) Тонкости работы с регулярными выражениями |
|||
|
#18+
zarusjamerИбо в хелпах ПХП вообще мало путного написано. PHP FAQ: Регулярные выражения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=23&tablet=1&tid=1477356]: |
0ms |
get settings: |
11ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
492ms |
get topic data: |
14ms |
get forum data: |
3ms |
get page messages: |
55ms |
get tp. blocked users: |
2ms |
| others: | 240ms |
| total: | 838ms |

| 0 / 0 |
