正则表达式提取javascript文本中的函数调用

时间:2017-02-09 20:25:35

标签: java regex

我正在构建一个从HTML网页上抓取的应用 页面在javascript中显示错误的方式:

 <script type="text/javascript">
    toastr.error('ERROR1');
    toastr.error('ERROR2');
...
</script>

我需要构建一个正则表达式,逐个提取ERROR1和ERROR2等。

1 个答案:

答案 0 :(得分:1)

如果您尝试仅获得确切的ERROR1ERROR2这意味着您应该在toastr.error('');之间获取所有内容,这样可以帮助您:

public static void main(String[] args) {
    String str = "<script type=\"text/javascript\">"
            + "toastr.error('ERROR1');"
            + "toastr.error('ERROR2');"
            + "..."
            + "</script>";
    String regexString = Pattern.quote("toastr.error('") + "(.*?)" + Pattern.quote("');");
    Pattern pattern = Pattern.compile(regexString);
    Matcher matcher = pattern.matcher(str);
    while (matcher.find()) {
        System.out.println(matcher.group(1));
    }
}

这将返回如下结果:

ERROR1
ERROR2