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

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

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.
  • Вопрос задан
  • 10749 просмотров
Решения вопроса 1
00 00 (\d{2})((\s\S{2})+?)\s03\w?
+? — 1 or more, ungreedy

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

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

Похожие вопросы