正则表达式删除/存在某些字符串后的所有内容

时间:2016-03-08 10:59:47

标签: java regex

我有一些我想缩短的网址。我想删除url后面的所有内容,除非该url等于plus.google.com

例如:

www.somerubbish.com/about/64848372.meh.php将缩短为www.somerubbish.com

plus.google.com/756934692387498237/about将不受影响

关于我如何做到这一点的任何想法?

我的失败尝试如下。我知道|正在说OR,这就是为什么它也匹配第一行中的/。

\b!(?:plus.google.com\/.*)\b|\b(?:\/.*)\b

http://regexr.com/3cv6n

2 个答案:

答案 0 :(得分:1)

好的,我有。

答案是使用负面的lookbehind并删除管道

(?<!plus.google.com)\b(?:\/.*)\b

https://regex101.com/r/pU3hU4/1

答案 1 :(得分:0)

错误:

if( ! url.contains("plus.google.com")) {
    url = StringUtils.substringBefore(url, "/");
}