Non capturing regex (?:...)
Posted: 03.12.2025 20:37
Поддерживаются ли незахватывающие группы (?:...)
В SynWrite редакторе подсвечивается ошибка. Но, возможно, будет работать в CudaText?
Делаю небольшой лексер для очередной ToDo-шки.
Задача выцеплять текст после точки (пробелы кратные 4 обозначил подчеркиваниями):
________DONE.text
________abc.text
Сейчас
(?<=^(\x20{4})*DONE\.).* работает.
(?<=^(\x20{4})*(DONE|abc)).*- не работает. (Т.к. look ahead / behind не поддерживает изменяемую длину. Т.е. нельзя внутри использовать 2 группы).
Я туплю, или есть решение элегантнее, чем объединять просто 2 длинных regexp через ИЛИ
((?<=^(\x20{4})*DONE).* | (?<=^(\x20{4})*abc).*)
В SynWrite редакторе подсвечивается ошибка. Но, возможно, будет работать в CudaText?
Делаю небольшой лексер для очередной ToDo-шки.
Задача выцеплять текст после точки (пробелы кратные 4 обозначил подчеркиваниями):
________DONE.text
________abc.text
Сейчас
(?<=^(\x20{4})*DONE\.).* работает.
(?<=^(\x20{4})*(DONE|abc)).*- не работает. (Т.к. look ahead / behind не поддерживает изменяемую длину. Т.е. нельзя внутри использовать 2 группы).
Я туплю, или есть решение элегантнее, чем объединять просто 2 длинных regexp через ИЛИ
((?<=^(\x20{4})*DONE).* | (?<=^(\x20{4})*abc).*)