Я пытаюсь создать регулярное выражение python для представления идентификаторов для лексического анализатора. Мой подход:Python Regex for alpha (alpha | digit) *
([a-zA-Z]([a-zA-Z]|\d)*)
Когда я использую это:
regex = re.compile("\s*([a-zA-Z]([a-zA-Z]|\d)*)")
regex.findall(line)
Он не производит список идентификаторов, как это должно быть. Я неправильно сформулировал это выражение?
Что такое хороший способ представить форму:
alpha(alpha|digit)*
С модулем питона повторно?
Ваше регулярное выражение прекрасно, но некоторые советы: вы должны прикрепить строку регулярного выражения к 'r', чтобы сделать его строковым литералом. Кроме того, вам не следует использовать группы захвата, если это необходимо, если вам нужно использовать брекетинг, просто используйте синтаксис '(?: ...)'. –
попробуйте [regex101] (https://regex101.com/#python) – miraculixx