让我们说我有这样的正则表达式(python表示法)r'^namespace/(\w+)/([0-9]+)/'
,有没有办法扭转这个正则表达式并找到一个符合它的字符串?
通过撤消我并不意味着手动构建'namespace/' + 'a_1' + '/' + '1'
,但系统地反转任何正则表达式组成某些特殊字符。因此,对于每个正则表达式,我都可以生成(任何)字符串来实现它。
我唯一想到的就是用一些其他正则表达式来解析给定的正则表达式,但它似乎不是可接受的解决方案。虽然我希望整个操作具有巨大的复杂性,但我仍然希望至少有一些更复杂的方法来实现它。
答案 0 :(得分:1)
我唯一想到的就是用一些其他正则表达式来解析给定的正则表达式,但这似乎不是可接受的解决方案
您不需要使用正则表达式解析正则表达式,但是您需要解析它。当你有一个正则表达式的AST时,你可以很容易地遍历它并在线性时间内构建一个可能的匹配(对于普通的正则表达式,没有像看起来那样过于花哨)。
检查Enumerating Regular Languages以获取示例代码和连续链接。