在正则表达式中包含一个文字字符串

时间:2016-08-26 07:36:41

标签: php regex .htaccess

当前网址:

http://domain.com/index.php?route=common/home
http://domain.com/index.php?route=account/register
http://domain.com/index.php?route=checkout/cart
http://domain.com/index.php?route=checkout/checkout

所需网址:

http://domain.com/home
http://domain.com/register
http://domain.com/cart
http://domain.com/checkout

正则表达式:

(?=\=)(.*?)(?<=\/).+$

...几乎可以使用,但它匹配(例如最后一个网址)=checkout/,而我需要它来匹配index.php?route=,所以我可以删除整个index.php?route=checkout/ URL。

我试过index.php?route=(?=\=)(.*?)(?<=\/).+$但是当然它不起作用。

1 个答案:

答案 0 :(得分:2)

要删除所需的部分,您应该替换:

index.php\?route\=[^\/]*\/

带有空字符串。 为了更加严格和精确,你应该使用lookbehind:

(?<=http:\/\/domain.com\/)index.php\?route\=[^\/]*\/

在此处检查正则表达式:https://regex101.com/r/sY7aV6/1