Java 使用regexp检查wiki链接

Java 使用regexp检查wiki链接,java,regex,Java,Regex,我不擅长正则表达式。我正在尝试检查wiki链接。如果它有一个hashtag#,那么我不想使用它,因为它在当前页面中 例如: [[Ball]] -- OK [[a ball |Ball]] -- OK [[#Ball]] -- No 我所做的听起来很简单, 所以我有一个名为link.matches(“^#”)的字符串。除了#之外,它与任何东西都匹配,但当使用[[球]进行测试时,它的效果并不好 知道为什么吗?link.matches()检查整个字符串。解决问题的一种方

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

例如:

[[Ball]]         -- OK
[[a ball |Ball]] -- OK
[[#Ball]]        -- No
我所做的听起来很简单, 所以我有一个名为
link.matches(“^#”)的字符串
。除了#之外,它与任何东西都匹配,但当使用[[球]进行测试时,它的效果并不好

知道为什么吗?

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

if (link.matches("[^#]+") {
    //all ok
}
使用此正则表达式:

(?=\[\[[a-z]).*
匹配不以
#
开头的链接


另外,不要忘记转义
\
,您还可以使用find显式检查#的出现,或者在您的情况下,甚至使用字符串的indexOf:

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