【问题标题】:Java Browser, Dynamic string Matcher PatternJava 浏览器,动态字符串匹配器模式
【发布时间】:2016-01-04 18:27:50
【问题描述】:

我有以下使用特定字符串并使用匹配器和模式绘制链接的代码,我还有一个将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);
   }

  }
}

【问题讨论】:

    标签: java string dynamic matcher


    【解决方案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();
    }
    

    【讨论】:

    • 感谢您的回复,但我对我应该做什么有点迷茫,我想用一个包含 a 的变量替换“www.google.com”动态字符串,虽然您的示例可能会回答我的问题,但我有点迷失了,例如我已将动态字符串命名为 getcontent(它返回一个数据字符串)我应该如何将它添加到我的类中?
    • 添加了代码,但如果你不明白这一点,那么你需要阅读一些基本的java教程(免费在线课程等)。因为你将很难继续前进。
    • 再次感谢,我确实缺少一些基本知识,因为我是一年级学生,我正在网上搜索并尝试学习我的方法!再次感谢您的回复。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-12-17
    • 1970-01-01
    • 1970-01-01
    • 2015-04-28
    • 1970-01-01
    • 2020-07-02
    • 1970-01-01
    相关资源
    最近更新 更多