Java正则表达式更高效的动态正则表达式
我有一个正则表达式,可以用来替换字符串中的变量。正则表达式本身工作得非常出色。我更担心正则表达式编译的效率。基于评测,我的程序花了很多时间编译这个正则表达式,所以可能有更好的机制来完成我的工作。我的代码看起来有点像这样:
for(String attribute : attributes.keySet())
{
for(String searchAttribute : searchAttributes.keySet())
{
attributes.put(attributes.get(attribute).replaceAll(
"(?<![A-Za-z0-9])"+searchAttribute+"(?![A-Za-z0-9])",
"(" + searchAttributes.get(searchAttribute) + ")");
}
}
attributes
和searchAttributes
是HashMap。在对周围函数的每次调用中,假设其中的值不同。也就是说,我不能为集合静态地预编译正则表达式一次,然后就可以完成了
这个例子有点做作,但它非常接近我在程序中实际做的事情。有没有更快/更好的方法来完成我正在做的事情
共 (0) 个答案