正则表达式提取javascript文本中对函数的调用
我正在构建一个应用程序,从html网页, 页面在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等。。一个接一个
<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