即使它如此简单,也无法生成正则表达式

时间:2018-02-05 20:30:42

标签: regex mod-rewrite

假设我有这个网址

http://server-VM1.test.com:8080/main-app/master/

我需要一个将其替换为

的正则表达式

http://server-VM1.test.com:8080/main-app/

主人之后是否有斜线!

我有以下模式

 /[a-zA-Z0-9_]+/(.*)        /$1

但只有当我在末尾添加斜杠

时它才有效

https://regex101.com/r/8XVPnx/4

..并帮忙?

请注意,即使我们最后还有一个斜杠,正则表达式也必须正常工作。

示例 - >

http://server-VM1.test.com:8080/main-app/master/

替换为

http://server-VM1.test.com:8080/main-app/http://server-VM1.test.com:8080/main-app/////

2 个答案:

答案 0 :(得分:2)

您可以使用

/\w+(?:/(.*))?$

请参阅System.Linq.Dynamic.Core

模式详情

  • / - /字符
  • \w+ - 一个或多个字母字母(字母,数字或_
  • (?:/(.*))? - 可选的出现次数:
    • / - /字符
    • (.*) - 第1组(替换模式中称为$1),尽可能多地捕获任何0+字符
  • $ - 字符串结束。

答案 1 :(得分:1)

这个怎么样:(\w+)(/+)?$

Demo

您也可以使用(?<=main-app/)[a-zA-Z/]{1,}?$,这会删除 main-app /

之后的所有内容

Demo2