- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
以下代码在首次运行时给出异常。但是当我在匹配器行上设置断点并在 Netbeans Watcher 中评估一些命令时。有用。为什么??
String regex = "/I-TASSER/output/(?<jobId>.*?)>";
Pattern pattern;
Matcher matcher;
if (Pattern.compile(regex).matcher(document.html()).find()) {
pattern = Pattern.compile(regex);
matcher = pattern.matcher(document.html());
jobId = matcher.group("jobId"); //always give exception, so breakpoint here
}
我在 netbeans 变量观察器中放置了以下四行
matcher.group("jobId"); //exception
matcher.find(); //true
matcher.group("jobId"); //S12345 /*found*/
为什么会这样?
最佳答案
您正在重新分配 if
语句中的 Pattern
和 Matcher
引用。
因此,您需要在该上下文中再次调用 matcher.find()
才能调用 matcher.group()
,否则它会抛出一个 IllegalStateException
- 参见 API .
更清晰、更简单的语法是:
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(document.html());
if (matcher.find()) {
jobId = matcher.group("jobId");
}
最后的建议,正则表达式不适合解析html。
查看关于它的大量其他帖子。
关于没有 matcher.find(),Java Regex : Why matcher. group() 不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25851293/
今天有小伙伴给我留言问到,try{...}catch(){...}是什么意思?它用来干什么? 简单的说 他们是用来捕获异常的 下面我们通过一个例子来详细讲解下
我正在努力提高网站的可访问性,但我不知道如何在页脚中标记社交媒体链接列表。这些链接指向我在 facecook、twitter 等上的帐户。我不想用 role="navigation" 标记这些链接,因
说现在是 6 点,我有一个 Timer 并在 10 点安排了一个 TimerTask。之后,System DateTime 被其他服务(例如 ntp)调整为 9 点钟。我仍然希望我的 TimerTas
就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用资料或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the
我就废话不多说了,大家还是直接看代码吧~ ? 1
Maven系列1 1.什么是Maven? Maven是一个项目管理工具,它包含了一个对象模型。一组标准集合,一个依赖管理系统。和用来运行定义在生命周期阶段中插件目标和逻辑。 核心功能 Mav
我是一名优秀的程序员,十分优秀!