Java Browser,动态字符串匹配模式

时间:2016-01-04 18:27:51

标签: java string dynamic matcher

我有以下代码使用特定字符串并使用匹配器和模式绘制链接,我还有一个方法将html代码作为字符串返回,我的问题是我不知道如何调用它当下面的方法运行它使用动态字符串而不是静态字符串时,我尝试在搜索中使用动态字符串名称,但它给了我一个错误,说它无法编译,因为我试图使用动态字符串而不是静态的,任何提示或帮助将不胜感激,如果您需要我的任何其他课程或方法随时可以询问。

String stringToSearch = "<a>www.google.com</a> ";


Pattern p = Pattern.compile("<a>(\\S+)</a>");
Matcher m = p.matcher(stringToSearch);


if (m.find())
{

  String codeGroup = m.group(1);


  System.out.format("'%s'\n", codeGroup);
   }

  }
}

1 个答案:

答案 0 :(得分:1)

这不是一个“设计模式”问题,更多的是只知道如何将参数正确地传递给方法。

Pattern.compile(String)方法将字符串作为输入。该字符串不必是常量。您可以将该字符串作为参数传递,我甚至将其放入“帮助器”方法来演示。

public public void someMethod(){
     String stringToSearch = "<a>www.google.com</a> ";
     String matchPattern   = "<a>(\\S+)</a>";

     if (doesMatch(matchPattern,stringToSearch)){
       String codeGroup = m.group(1);
       System.out.format("'%s'\n", codeGroup);
     }
}

public static boolean doesMatch(String pattern, String stringToSearch){
    Pattern p = Pattern.compile(pattern);
    Matcher m = p.matcher(stringToSearch);
    return m.find();
}

告诉你我的意思......

{

    // code... 

     String stringToSearch = getContent(); //might have parameters here or not
     String matchPattern   = "<a>(\\S+)</a>";

     if (doesMatch(matchPattern,stringToSearch)){
       String codeGroup = m.group(1);
       System.out.format("'%s'\n", codeGroup);
     }
}

public static boolean doesMatch(String pattern, String stringToSearch){
    Pattern p = Pattern.compile(pattern);
    Matcher m = p.matcher(stringToSearch);
    return m.find();
}