Задать вопрос

Регулярные выражения: только первое найденное

Имеем строку:

02 00 00 91 1B 00 00 03 89 02 00 00 91 1B 00 00 03 89 02 00 00 91 1B 00 00 03 89 02 00 00 91 1B 00 00 03 89 02 00 00 91 1B 00 00 03 89 02 00 00 91 1B 00 00 03 89 02 00 00 91 1B 00 00 03 89 02 00 00 91 1B 00 00 03

Регулярное выражение:

00 00 (\d{2})((\s\S{2}){0,})\s03\w?

Первая «скобка» находит 91

Вторая должна находить «1B 00 00», т.е. останавливаться на первом найденном «03», но фактически останавливается на последнем «03».

Как видно в исходной строке происходит повтор одного и того же блока.

Как с помощью регулярного выражения добиться, чтобы данные второй скобки останавливалась на первом найденном 03. Что-то все, что знаю перепробовал — не получается.

Задача должна решаться только(!) с помощью регулярных выражений.

Регулярные выражения используются на javascript.
  • Вопрос задан
  • 10757 просмотров
Подписаться 3 Оценить Комментировать
Решения вопроса 1
00 00 (\d{2})((\s\S{2})+?)\s03\w?
+? — 1 or more, ungreedy

Должно искать то что надо.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
Wanted. Санкт-Петербург
До 450 000 ₽
Wanted. Санкт-Петербург
До 120 000 ₽
Wanted. Санкт-Петербург
До 100 000 ₽
03 янв. 2025, в 20:19
400 руб./за проект
03 янв. 2025, в 19:50
1000 руб./за проект