【发布时间】:2014-08-28 04:17:31
【问题描述】:
编辑:请确保在尝试使用组之前致电 Matcher#matches 或 Matcher#find! Source
我正在尝试做一些非常简单的事情 - 我正在尝试从以单词开头的行中获取文本。在这种情况下,单词是Location:。我正在阅读原始 HTML,因此感兴趣的行实际上如下所示:
Location: Main Hall
显然,我希望将 Main Hall 返回给我,以便我可以读取我的应用程序的位置。
这是我尝试过的:
String t_location = "";
Pattern t_pat = Pattern.compile("^[\\s]+?(?s)Location: (?-s)(.*)$");
Matcher t_match = t_pat.matcher(t_inner_html);
t_location = t_match.group(0);
但我不断收到错误消息:
java.lang.IllegalStateException: No successful match so far
分解我的正则表达式,这就是(我认为)我正在做的事情:
^ - 从行首读取
[\\s]+? - 使用不情愿的限定符,读取行首的空格,直到我们遇到其他问题
(?s)Location: (?-s) - 已读取文字字符串“Location:”
(.*)$ - 读取字符(换行符除外)直到行尾
这就是我认为我正在做的事情。我不太擅长正则表达式,但我试图按照文档无济于事。有人可以帮帮我吗?
例如,字符串t_inner_html 如下所示:
8/28/2014
Alumni Reunion
Location: Main Hall
<span class="extra-info">
Blah blah blah....
</span>
【问题讨论】: