使用regexp检查wiki链接

时间:2014-03-30 12:07:19

标签: java regex

我不擅长正则表达式。我正在尝试查看wiki链接。如果它有一个#标签,那么我不想使用它,因为它在当前页面内。

示例:

[[Ball]]         -- OK
[[a ball |Ball]] -- OK
[[#Ball]]        -- No

我所做的一切听起来很简单, 所以我有一个名为link.matches("^#")的字符串。它匹配除了#之外的所有东西,但是当用[[Ball]]测试时,它并没有很好地工作。

任何想法为什么?

3 个答案:

答案 0 :(得分:1)

link.matches()检查整个字符串。解决问题的一种方法是检查整个链接是否只包含非#字符:

if (link.matches("[^#]+") {
    //all ok
}

答案 1 :(得分:1)

您还可以使用find显式检查#的出现,或者在您的情况下,甚至使用stringOf的字符串:

if (link.indexOf("#") == 0) {
    // all good
}

答案 2 :(得分:0)

使用此正则表达式:

(?=\[\[[a-z]).*

该匹配链接不以#开头。

另外,不要忘记逃避\