使用正则表达式删除整个查询字符串

Tho*_*asD 1 regex url-rewriting

我有以下正则表达式,但是如果存在,我如何完全删除查询字符串:

^~/(.*)/restaurant/(.*)
Run Code Online (Sandbox Code Playgroud)

例如。网址

/seattle/restaurant/sushi?page=2 
Run Code Online (Sandbox Code Playgroud)

要么

/seattle/restaurant/sushi?somethingelse=something 
Run Code Online (Sandbox Code Playgroud)

要么

/seatthe/restaurant/sushi 
Run Code Online (Sandbox Code Playgroud)

应该只返回seattlerestaurantsushi并删除所有存在的查询字符串。

(很抱歉重新发布了类似的问题,但在上一个问题中我找不到答案)。

谢谢

汤玛士

npi*_*nti 5

此正则表达式:

(/[^?]+).*

应该与您网址的开头部分匹配,然后放入一个组中。

因此它将匹配/seattle/restaurant/sushi并将值放在一个组中。

您可以使用类似这样的方式:(/.*?/restaurant[^?]+).*如果您只想处理restaurant以斜线之间的第二个单词作为单词的URL。

编辑:像这样的东西应该得到3组/(.*?)/(restaurant)/([^?]+).*。组1为seatthe,组2为restaurant,组3为sushi。如果在最后/一个之后有一个?,则正则表达式将丢弃?和之后的所有内容。