Java String包含一个特殊的Char,但是甚至没有一个Char

时间:2015-09-01 10:43:49

标签: java regex equals contain

我正在寻找每个URL,它在html文档中被链接为“eye”。我正在使用正则表达式模式,因为简单包含在这一点上没有解决方案。所以我得到了这样的模式

模式:: href=\"(https?://)?[a-zA-z0-9?/&=\"+-_\\.# ]*>[Ee]ye

它的工作......很好...或多或少...因为我得到的链接比“眼睛”或“眼睛”更多。我会得到链接为“eyebrights”或“eyewears”的网址,但这不是我想要的。

有什么方法可以说“当我想要的东西超过我的时候,让我这个并忽略它”吗?

2 个答案:

答案 0 :(得分:2)

应该尝试avoid using regex to parse XML/HTML。请改用jsoup之类的XML / HTML解析器。使用此库,我们的代码可能如下所示:

Elements links = doc.select("a[href]:matches(^[eE]ye\\b)");
//Elements extends ArrayList<Element> so you can easily iterate over it

http://jsoup.org/cookbook/extracting-data/selector-syntax

的更多信息

答案 1 :(得分:1)

\b之后添加eye

href=\"(https?://)?[a-zA-z0-9?/&=\"+-_\\.# ]*>[Ee]ye\\b

\b:在字边界处断言位置。