Java 字符串包含一个特殊的 Char 但甚至没有一个 Char

Java String contains a special Char but not even one more Char

我正在寻找每个 URL,它们在 html 文档中链接为 "eye"。我正在使用正则表达式模式,因为此时简单的包含不是解决方案。所以我得到了这样的模式

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

它工作...很好...或多或少...因为我得到的链接比任何 URL 都多 "Eye" 或 "eye"。我也会得到链接为 "eyebrights" 或 "eyewears" 的 URLs,但这不是我想要的。

有没有办法说"get me this and ignore it, when there is more than I want"?

eye之后添加\b:

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

\b: 在单词边界断言位置。

中应该尝试 avoid using regex to parse XML/HTML. Use XML/HTML parser like jsoup 代替。使用此库,我们的代码可能如下所示:

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