LINUX.ORG.RU

История изменений

Исправление Freyr69, (текущая версия) :

Да я потом перепишу на lex, но сейчас у меня уже есть прототип лексического анализатора на питоне (он достаточно простой, потому быстрее было написать его руками), хотел просто переписать на си, заодно разобраться в сишных регулярках, но регулярки отказываются работать, или работают как-то не так.

Например для строки

12.1+12i blablabla

и регулярки

"^(\\-)?[0-9]*\\.?[0-9]*((\\+|\\-)[0-9]*\\.?[0-9]*i)?"

match->rm_so = 0, match->rm_eo = 8.

А для

blablabla 12.1+12i

и

"^[A-Za-z]+"

match->rm_so = 0, match->rm_eo = 0.

Есть идеи, почему так?

Исходная версия Freyr69, :

Да я потом перепишу на lex, но сейчас у меня уже есть прототип лексического анализатора на питоне, хотел просто переписать на си, заодно разобраться в сишных регулярках, но регулярки отказываются работать, или работают как-то не так.

Например для строки

12.1+12i blablabla

и регулярки

"^(\\-)?[0-9]*\\.?[0-9]*((\\+|\\-)[0-9]*\\.?[0-9]*i)?"

match->rm_so = 0, match->rm_eo = 8.

А для

blablabla 12.1+12i

и

"^[A-Za-z]+"

match->rm_so = 0, match->rm_eo = 0.

Есть идеи, почему так?