【发布时间】:2019-11-10 14:16:04
【问题描述】:
我必须在字符串中替换匹配词出现前后的字符。
我想知道:
1.当我使用正则表达式或使用 indexOf、循环等时,功能是否更好?
2.什么被认为是更可读的代码:正则表达式或使用 indexOf、遍历字符串等?
3.以时间复杂度的方式降低复杂度。
澄清一下,我要问的是使用正则表达式或只是进行字符串操作更好。看看我上面的问题
【问题讨论】:
-
你能告诉我们这个字符串和它的替换是什么吗?
-
@TimBiegeleisen,添加了一个示例。
-
可能最有效的方法是简单地匹配
(abc)|.并在进行匹配时,如果设置了第一组,则将group(1)附加到新字符串,否则附加*。另见The Best Regex Trick。或者您可以使用基于\G的模式(例如(?:(?<=abc)|\G)(?!abc).)来做一个replaceAll()
标签: java regex string performance time