正则表达式获取匹配之前和之后的字符串

问题描述 投票:0回答:1

我编写了一个正则表达式来匹配包含模式

..;
和类似模式的 URL,例如,
abc.com/..;/abc
abc.com/..;/..;/abc
abc.com/..;;/abc
等等。

这就是我的正则表达式的样子

"/*[.]{2,};+/"
,它能够匹配我尝试过的所有情况,然后我可以抛出异常,但是如果我不想抛出异常,而是想转换这些 URL 以删除匹配的字符串并得到类似
abc.com/abc
.

的内容
java regex url-rewriting
1个回答
0
投票

所以从你的评论来看,如果你关心的是replaceAll的性能,你可以通过安排只编译一次正则表达式模式(在类加载时)来减少它,所以:

private static final PATTERN = Pattern.compile("/*[.]{2,};+/”);

String result = PATTERN.matcher(str).replaceAll(“/“);

编译后的模式是线程安全的,因此在这样的常量中使用是安全的。

© www.soinside.com 2019 - 2024. All rights reserved.