正则表达式 - 匹配所有东西,但正斜杠

时间:2012-02-14 07:21:56

标签: regex

在以下字符串中:

/西雅图/餐厅

我想匹配西雅图(如果它存在)(有时网址可能是/西雅图/餐厅,有时它可能是/餐厅)。我不想要的是匹配以下正斜杠:seattle /

我尝试了以下方法,但我无法让它工作:

       /(.*[^/]?)restaurant(\?.*)?$

我需要第一个正斜杠,所以解决方法不是删除它,我可以这样做:

     (/?)(.*)/restaurant(\?.*)?$   

由于

托马斯

1 个答案:

答案 0 :(得分:25)

这样的事情怎么样?

^/([^/]+)/?(.*)$

我用python测试过,似乎工作正常:

>>> regex=re.compile(r'^/([^/]+)/?(.*)$')
>>> regex.match('/seattle').groups()
('seattle', '')
>>> regex.match('/seattle/restaurant').groups()
('seattle', 'restaurant')