Я читаю код анализатора регулярных выражений и начинаю задаваться вопросом, является ли синтаксис регулярного выражения само по себе регулярным и может быть выражен другим (довольно сложным) регулярным выражением?Можно ли анализировать регулярное выражение с регулярным выражением?
rere = "" # the regular expression of regular language
match1 = re.match(rere, "[a-z][email protected][a-z]+.com") # True
match2 = re.match(rere, ")az[") # False
Я не вижу никакой рекурсивной структуры в синтаксисе регулярных выражений, поэтому я думаю, что, возможно, это выполнимо?
Если это так, каково выражение? Если нет, то почему?
Нет. Вам нужна контекстно-свободная грамматика для разбора регулярного выражения. Вложенные круглые скобки не могут быть проанализированы (теоретическим) регулярным выражением. – nhahtdh
Да, вложенные круглые скобки. Я забыл об этом. Но если я не поддерживаю группу внутри группы, будет ли ответ другим? – NeoWang
@NeoWang: Тогда то, что у вас есть, слабее обычного выражения. то есть существуют языки, где может быть описано регулярное выражение/регулярная грамматика, но не ваша грамматика. – nhahtdh