Это я заметил, потому в тестовом массиве они и присутствуют, т.е. используются не как спецсимволы.Serge Yolkin wrote:YuS
Э-э-э... Там квадратные скобки экранированные... Т.е. диапазонов в приведённых регулярках нет.
Угу, именно эти фрагменты и были взяты для тестов...Serge Yolkin wrote: Есть два идентичных фрагмента в первом случае, и один точ в точ такой же фрагмент во втором с квантификатором 2.
Ну, в данном случае, могу только предполагать, одну из версий и описал выше. Видимо, в js используется не совсем идентичный движок регэкспов.Serge Yolkin wrote: И ещё раз: в JS обе регулярки отрабатывают почти одинаково - разница только в количестве запомненных фрагментов, обусловленном количеством круглых скобок, сама строка в обоих случаях захватывается.
А вообще, чтобы регулярка не действовала столь неоднозначно (слишком широкий диапазон предоставляется для совпадения с ".*?"), её бы написать поточнее, под конкретную задачу. Например, как-то так:
Code: Select all
1. (\[.*?\])[^\[]*?(\[.*?\])[^\[\n\r]*?
2. ((\[.*?\])[^\[\n\r]*?){2}