2014-03-30 2 views
0

Я не очень хорошо разбираюсь в регулярном выражении. Я пытаюсь проверить ссылку на wiki. Если он имеет hashtag #, то я не хочу использовать его, потому что он находится на текущей странице.Проверка ссылки wiki с помощью regexp

Пример:

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

То, что я сделал звучит довольно просто, поэтому я строка называется link.matches("^#"). Он соответствует всем, кроме #, но при тестировании с [[Ball]] это не очень хорошо работает.

Любые идеи, почему?

ответ

1

link.matches() проверяет всю строку. Один из способов решить вашу проблему, чтобы проверить, что вся ссылка содержит только Непро- # символов:

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

Используйте это регулярное выражение:

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

, которые соответствуют ссылкам, которые не начинаются с #.

Кроме того, не забудьте, чтобы избежать \

1

Вы также можете явно проверить для возникновения # с находкой, или в вашем случае даже с IndexOf строки:

if (link.indexOf("#") == 0) { 
    // all good 
} 
Смежные вопросы