【发布时间】:2015-03-28 04:00:37
【问题描述】:
在查看了有关替换最后一个单词的不同问题后,我没有找到涵盖最快方法的问题。在我的场景中,我想在一个句点之后替换字符串的最后一位,或者最后一个单词以及之后的所有内容。
为了更好地解释,这个方法完全按照我想要的方式替换了字符串:(编辑:我根据 Avinash 的响应更改了正则表达式,仍在寻找更快的替代方法,因为正则表达式替换仍然很慢)
return permission.replaceAll("\\w+(?:\\.\\*)?$", "*");
示例输入 -> 输出
test.test.test -> test.test.*
test.test.* -> test.*
虽然这可行,但我正在寻找一种更快的方法来实现相同的结果。这个方法经常被调用,它出现在我的 profiling cpu 结果的顶部。
【问题讨论】:
-
哦不,我回答了你原来的问题。好的,如果有人回答,这是比
"\\w+(?:\\.\\*)?$"更快的方法,那么您将问题更改为“我根据这个正则表达式更改了我的正则表达式。我还在寻找更快的方法”?这不是正确的行为。还原您的编辑。并等待更多时间。有人可能会提供比我更胖的解决方案。 -
您是否应该重用已编译的模式?如果正则表达式没有改变,则找到正则表达式模式并编译并重用它。
标签: java regex string replace replaceall