Regex 正则表达式到线性文法的转换算法

Regex 正则表达式到线性文法的转换算法,regex,algorithm,grammar,regular-language,Regex,Algorithm,Grammar,Regular Language,将任何给定的正则表达式(RE)转换为左(或右)线性文法的标准算法是什么 我知道我可以这样做(从RE编写线性语法): RegEx->NFA->DFA->右线性文法 对于直接方法,我可以处理简单的正则表达式,如(0+10)*,并创建线性语法。 但是,当有一个嵌套的克莱恩星时,如果没有任何定义良好的方法,很难产生一个线性的CFG 我看到了一些类似问题的答案。但它们不提供通用算法,也不将正则表达式转换为线性语法 特别是,如何使用某种算法将:((01+10)*00)*11)*直接转换为线性语法 感谢您的帮

将任何给定的正则表达式(RE)转换为左(或右)线性文法的标准算法是什么

我知道我可以这样做(从RE编写线性语法):

RegEx->NFA->DFA->右线性文法

对于直接方法,我可以处理简单的正则表达式,如
(0+10)*
,并创建线性语法。
但是,当有一个嵌套的克莱恩星时,如果没有任何定义良好的方法,很难产生一个线性的CFG

我看到了一些类似问题的答案。但它们不提供通用算法,也不将正则表达式转换为线性语法

特别是,如何使用某种算法将:
((01+10)*00)*11)*
直接转换为线性语法

感谢您的帮助

编辑

做了更多的搜索。得到了这个。

来自似乎回答了你的问题。嗨,你的建议是正确的,我犯了一些愚蠢的错误。但在我批准你编辑之前,其他用户拒绝了。现在我已经更正了我的答案。我有一个请求,请再次检查,以便一个新的可以得到正确的帮助。我可以在晚上帮你解决这个问题…谢谢!!简言之,我可以回答你关于线性语法(LG)的标准算法。发生在两个步骤中,首先从RE到DFA算法,然后从DFA到LG算法(因此搜索两个算法)。虽然很幸运,我们有正则表达式用于正则语言,因为正则表达式和语法用于相同的目的,但对于其他正则语言,我们没有任何正则表达式类型机制来表示语言。是的,对于RL,我们有RE和Grammar。我们唯一的示例项目完全符合您的要求。虽然这可以从理论上回答问题,但在这里包括答案的基本部分,并提供链接供参考。