2010-03-25 51 views
3

我想要一个只匹配无扩展url的正则表达式。换句话说,如果在url中存在扩展名,则完全忽略它。如何只匹配无扩展名的网址?

/(.+)/(.+)这将匹配URL和扩展名。

www.site.com/sports/cricket应符合

www.site.com/sports/cricket.aspx不应该提前匹配

感谢

+0

关于www.site.com/sports.aspx/cricket?和“/(.+)/(.+)”与www.site.com不符。这是故意的吗? – Jens 2010-03-25 10:55:28

回答

0

下将只匹配其中至少有两个/(按你的例子​​正则表达式),最后/后没有任何地方.字符串:

/(.+)/([^\./]+)$ 

如果您想了解更多关于正则表达式的信息,我建议您使用http://www.regular-expressions.info/

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

将匹配最后一个斜杠后面不包含点的URL(没有域)。

编辑:适应它更好的原始正则表达式。

+0

你需要逃脱。在[^ /。]中,所以[^ \。]可能是? – 2010-03-25 11:03:34

+2

不,你不知道。点是字符类内的文字点。 – 2010-03-25 11:11:06

2
.+/[^./]*$ 

这将匹配没有的字符串。最后/