有 Java 编程相关的问题?

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

正则表达式如果匹配时间过长,如何超时或跳过java中的任何匹配器(正则表达式)?

在我的项目中,我使用正则表达式来匹配字符串。这里的字符串是动态的,所以有时需要很长时间来匹配字符串。 这是我的代码(Keywords.p_resumeHeading是模式对象):

for (int k = 0; k < forcheck.length; k++) {
    Matcher m = Keywords.p_resumeHeading.matcher(forcheck[k].trim());
    if (m.find()) {

        //System.out.println("Resume heading hai ");
        finalresult = true;
        break;
    }
}

共 (2) 个答案

  1. # 1 楼答案

    您可以考虑将一个RunnLabor提交到一个ExecutorService中,以启动另一个线程中的查找操作,并使用返回的Future对象来指定等待的最大时间。

    您可以使用Executors类来创建ExecutorService

  2. # 2 楼答案

    我有一个类似的例子,有一个“格式错误”的正则表达式。处理这个问题的最好方法是限制组重复使用{x},其中x是一个现实的数字(5或10),可能就足够了。检查http://www.regular-expressions.info/repeat.html限制重复

    没有你的正则表达式,我帮不了你