Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
正则表达式提取javascript文本中对函数的调用_Java_Regex - Fatal编程技术网

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

正则表达式提取javascript文本中对函数的调用,java,regex,Java,Regex,我正在构建一个应用程序,从html网页, 页面在javascript中显示错误的方式: <script type="text/javascript"> toastr.error('ERROR1'); toastr.error('ERROR2'); ... </script> toastr.error('ERROR1'); toastr.error('ERROR2'); ... 我需要构建一个正则表达式来提取ERROR1和ERROR2等。。一个接一个

我正在构建一个应用程序,从html网页, 页面在javascript中显示错误的方式:

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

toastr.error('ERROR1');
toastr.error('ERROR2');
...

我需要构建一个正则表达式来提取ERROR1和ERROR2等。。一个接一个地如果你只想得到确切的
ERROR1
ERROR2
,这意味着你应该得到
到str.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));
    }
}

您是指
toastr.error('ERROR1')的结果
toastr.error('ERROR1')
或仅是
ERROR1
ERROR1
字符串?您尝试了什么?此外,如果您提供您的尝试的详细信息,我们可以更好地帮助您;它有助于我们更准确地理解您试图实现的目标。应该注意,这将无法正确捕获错误消息,如:
toastr.error('ERROR3:value='+variable)。。。因为对
toastr.error(…)
的调用并没有以字符
')结束。正则表达式匹配是脆弱的。嗯,我想你是对的@AJNeufeld我只回答了他在问题中说的话,但你认为我应该像你在评论中说的那样做得更好:)?不,你的答案很好(我甚至投了更高的票)。OP没有说明他们想要的是
ERROR1
还是
'ERROR1'
,或者
toastr.error('ERROR1')返回。如果您试图只捕获
(…)
中的内容,它将在包含
字符的错误消息中中断。OP要求一个正则表达式;一般的答案需要一个实际的解析器,这远远超出了问题的范围。我的评论/警告是针对OP的,当他们使用您的代码时。
ERROR1
ERROR2