我正在为我的django url配置使用正则表达式。我有以下正则表达式:
url(r'^myapp/prices/?([X]{1}[A-Z0-9]{3}:[A-Z0-9]{1}[A-Z09.-]{1,4})/?([0-9]{0,3})/?$', views.prices, name='prices'),
匹配以下网址:
我想在我的网址格式中修改我的正则表达式模式,以便我可以匹配上面的字符串,以及字符串,如下所示:
HTPP://127.0.0.1/myapp/prices/XNAS:GOOG + XNAS:TSLA + XNAS:FB / 1
基本上,我希望我的原始模式至少匹配一次,如果不止一次,那么模式的出现应该用' +'登录。
我将如何使用正则表达式语法(Python)
来表达这一点答案 0 :(得分:2)
repeatable = r'[X]{1}[A-Z0-9]{3}:[A-Z0-9]{1}[A-Z09.-]{1,4}'
url_regex = r'^myapp/prices/?(' + re.escape(repeatable) + r')(\+' + re.escape(repeatable) + r')*/?([0-9]{0,3})/?$'
url(url_regex, views.prices, name='prices')
但我相信这更复杂:
url(r'^myapp/prices/?([X]{1}[A-Z0-9]{3}:[A-Z0-9]{1}[A-Z09.-]{1,4})(\+?[X]{1}[A-Z0-9]{3}:[A-Z0-9]{1}[A-Z09.-]{1,4})*/?([0-9]{0,3})/?$', views.prices, name='prices'),