2015-07-02 60 views
0

我在Python中学习regex有一些困​​难。我想将我的龙卷风web路由配置和参数一起解析到请求路径字符串中,而无需处理程序request.path方法。 例如,我有航线与像图案:Python基于正则表达式格式生成字符串

/entities/([0-9]+)

/product/([0-9]+/actions

预期的结果相结合以整数参数(123)将是一个字符串,如:

/entities/123

/product/123/actions

如何根据该模式生成字符串?

非常感谢您提前!

+0

您可以编辑您的问题以包含更多示例输入及其预期输出吗?此外,当你在这里,解释你为什么需要生成这些字符串? –

+0

从正则表达式生成字符串不是我熟悉的任何语言的库中可用的东西。但是,如果你搜索,有一些项目可以做到。基本上,你需要生成基于正则表达式的转换图,然后随机地走它。一些现代的“正则表达式”实际上并不是正则表达式,并且为它们创建生成器会比较困难(例如,任何零宽度断言都会使事情变得复杂)。 – Amadan

+0

感谢您的回答Amadan。你有任何lib的例子,可以节省我用python写的问题吗? – daimagine

回答

1

这可能是一个可能重复到:
Reversing a regular expression in Python
Generate a String that matches a RegEx in Python


使用@bjmc的解决方案所提供的答案是这样的:

>>> import rstr 
>>> intermediate = rstr.xeger(\d+) 
>>> path = '/product/' + intermediate + '/actions' 

根据多久你想要你的中间整数,你可以替换正则表达式:\d{1,3}

+0

感谢您的代码示例,但我认为它会生成一个随机的,不是吗? – daimagine