Измените это регулярное выражение: {([^ \]] *)} чтобы принять \] - PullRequest
3 голосов
/ 06 марта 2012

У меня есть это регулярное выражение:

{([^\]]*)} // any character except ']' but i want it to accept also '\]' this combination of 2chars

Пример

'Lorem Ipsum is simply] dummy text' should return => 'Lorem Ipsum is simply' (and this ones does) but
'Lorem Ipsum is simply\] dummy text' => should return all the text because the ']' is escaped

надеюсь, что это имеет смысл

Ответы [ 2 ]

7 голосов
/ 06 марта 2012

Вы можете использовать чередование:

(?:\\\]|[^\]])*
0 голосов
/ 06 марта 2012

Я бы пошел с:

'~(?:[^\\\\\\]]*|\\\\.)*~' // (?:[^\\\]]|\\.)*

В отличие от ответа Маркса, он может анализировать [\\]] как \\, что даст вам возможность использовать \ как универсальный escape-символ не только для \].

...