Вторая должна находить «1B 00 00», т.е. останавливаться на первом найденном «03», но фактически останавливается на последнем «03».
Как видно в исходной строке происходит повтор одного и того же блока.
Как с помощью регулярного выражения добиться, чтобы данные второй скобки останавливалась на первом найденном 03. Что-то все, что знаю перепробовал — не получается.
Задача должна решаться только(!) с помощью регулярных выражений.
Да, дело в знаке вопроса, регулярки в жс поумолчанию жадные и берут как можно больше текста которые могут ухватить, и без знака вопроса (+?) будет хавать текста как можно больше, а учитывая что было {0,} то он и хавал от нуля и до максимума доступного (пробел и два знака, пробел и два знака… итд пока можно хавать)
Всё отлично работает, но на строке '02 00 00 A5 03 A6' не ищет, пробовал изменить *? — также не работает. Как мне сделать «0 или больше» и «первое найденное»?
Ну рад, что разобрались.
*? — 0 или больше, не жадный поиск
+? — 1 или больше, не жадный поиск
Вот, собственно и вся арифметика. Удачного кодинга, и если будут вопросы, буду рад помочь(чем смогу) — пишите здесь или письмом.