Что не так с регуляркой?

  • Автор темы Автор темы codeby
  • Дата начала Дата начала

codeby

Client
Регистрация
25.08.2014
Сообщения
394
Реакции
53
Баллы
28
Что не так с регуляркой?

Вот сам текст регулярки:
Код:
Развернуть Свернуть Копировать
(?<="items":\[).*?(?=]}}})

Вот текст, откуда надо взять последние значения items (в конструкторе выбрал "самое короткое совпадение")
Код:
Развернуть Свернуть Копировать
{"response":{"users":{"count":0,"items":[]},"groups":{"count":3,"items":[41807249,40399920,91009752]}}}

Снимок.PNG

Мне надо в результате получить
Код:
Развернуть Свернуть Копировать
41807249,40399920,91009752

А получается:
Код:
Развернуть Свернуть Копировать
]},"groups":{"count":3,"items":[41807249,40399920,91009752

Почему не берётся самое короткое совпадение?
 
просто такой вариант был первым. он был найден, а поиск дальше уже пошел со следующих символов, не захватывая ранее найденный текст.
попробуй [^\[]* вместо .*?
 
  • Оценить
Реакции: codeby
просто такой вариант был первым. он был найден, а поиск дальше уже пошел со следующих символов, не захватывая ранее найденный текст.
попробуй [^\[]* вместо .*?

ваш вариант работает=)

de6GY.jpg


(?<=items":\[)[^\[]*(?=]}}})
 
  • Оценить
Реакции: codeby
просто такой вариант был первым. он был найден, а поиск дальше уже пошел со следующих символов, не захватывая ранее найденный текст.
попробуй [^\[]* вместо .*?
но ведь он не самый короткий получился
не пойму логики
 
Поиск осуществляется слева направо.
а в чём разница?
тут же по идее должен сравниваться диапазон символов
например A-C длиннее B-C

явно же от второго items количество символом меньше до конца, чем от первого.
 
Нет, не должен.
Я тоже когда начинал пользоваться только софтом считал это багом))
 
а в чём разница?
тут же по идее должен сравниваться диапазон символов
например A-C длиннее B-C

явно же от второго items количество символом меньше до конца, чем от первого.

http://zennolab.com/discussion/thre...to-takoe-i-s-chem-ix-edjat.23612/#post-160877
почитайте эту часть. Там описана Ваша ситуация.
 
  • Оценить
Реакции: codeby

Кто просматривает тему: (Всего: 0, Пользователи: 0, Гости: 0)