如何在第二次斜杠后删除所有内容

时间:2017-12-26 18:53:25

标签: regex notepad++

关于这个主题: How to delete all after last slash?是一个标记为已被接受的答案,但是当你在结尾处有另一个斜杠时,答案不会涵盖这种情况。

想要在第二次斜杠(/)

之后删除所有内容

示例:

Redirect 410 /component/content/
Redirect 410 /rm/land/8919/
Redirect 410 /a5-Q_/MART_Horizon_Afdj/

成为

Redirect 410 /component/
Redirect 410 /rm/
Redirect 410 /a5-Q_/

2 个答案:

答案 0 :(得分:1)

使用表达式^([^/]*/[^/]*/).*$,并替换为$1

enter image description here

([^/]*/[^/]*/)表达式捕获您要保留的部分; .*$将字符串的其余部分捕获到行尾。替换$1会删除字符串中不需要的部分。

答案 1 :(得分:0)

这是一个简单的例子,如何使用正则表达式删除你要求的String部分。我创建了一个包含源String的简单数组,以使代码看起来更清晰:

String[] strings = { "Redirect 410 /component/content/", "Redirect 410 /rm/land/8919/", "Redirect 410 /a5-Q_/MART_Horizon_Afdj/" };
Pattern p = Pattern.compile("(Redirect 410 /[^/]*/).*"); // Here is the regex I used to get needed part of String
for(int i = 0; i < 3; i++) {
    Matcher m = p.matcher(strings[i]);
    if(m.find()) {
        strings[i] = m.group(1);
        System.out.println(strings[i]);
    }
}

使用此代码时获得的输出:

Redirect 410 /component/
Redirect 410 /rm/
Redirect 410 /a5-Q_/

这是一个根据Java语言的解决方案,因为您没有指定您使用的语言,但我认为其他语言的解决方案可能与此类似。