Регулярные выражения - не работает негативный просмотр

PN
На сайте с 22.08.2012
Offline
103
645

Возникли следующие две проблемы (функция preg_match_all()):

1. не хочет работать негативный просмотр назад и вперед (при этом позитивный работает), т.е. конструкции вида: (?!шаблон) и (?<!шаблон).

preg_match_all('|\{([^\{\}]+)\}(?!\\)|U' ...

2. ругается на \\:

Warning: preg_match_all(): Compilation failed: missing ) at offset 19

хотя символ \ положено экранировать как \\

P.S. эту проблему решил - надо экранировать как \\\\ (сначала экранирует PHP, потом регулярка), а вот первая проблема осталась.

Всем спасибо за помощь!

Мой совет помог? Не скупись! Bitcoin 1Lseddet1o1B6odgXQHbGaWGwRkt1Db8Ef Ethereum 0x450f1a17461e25194B7F9226cDEe70173F39e1e1
lutskboy
На сайте с 22.11.2013
Offline
185
#1

Написано же

proksey-net:
missing )

отсутствует )

PN
На сайте с 22.08.2012
Offline
103
#2
lutskboy:
Написано же
отсутствует )

это относилось ко второй проблеме

все, первая проблема тоже решена!

siv1987
На сайте с 02.04.2009
Offline
427
#3

/{([^{}]+?)}(?!\\\)/

no match.

Покажите строку на которой у вас не работает.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий