有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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) + ")");
  }
}

attributessearchAttributes是HashMap。在对周围函数的每次调用中,假设其中的值不同。也就是说,我不能为集合静态地预编译正则表达式一次,然后就可以完成了

这个例子有点做作,但它非常接近我在程序中实际做的事情。有没有更快/更好的方法来完成我正在做的事情


共 (0) 个答案