我编写了一个正则表达式来匹配包含模式
..;
和类似模式的 URL,例如,
abc.com/..;/abc
或 abc.com/..;/..;/abc
或 abc.com/..;;/abc
等等。
这就是我的正则表达式的样子
"/*[.]{2,};+/"
,它能够匹配我尝试过的所有情况,然后我可以抛出异常,但是如果我不想抛出异常,而是想转换这些 URL 以删除匹配的字符串并得到类似 abc.com/abc
. 的内容
所以从你的评论来看,如果你关心的是replaceAll的性能,你可以通过安排只编译一次正则表达式模式(在类加载时)来减少它,所以:
private static final PATTERN = Pattern.compile("/*[.]{2,};+/”);
String result = PATTERN.matcher(str).replaceAll(“/“);
编译后的模式是线程安全的,因此在这样的常量中使用是安全的。