2016-07-15 2 views
-5

Я пытаюсь создать регулярное выражение , чтобы соответствовать строка, которая не содержит некоторые конкретные слова и следующую за ним по определенному слову, как это:Регулярного выражения не содержит список слов

(?<!(state|government|head).*)of 

например:

state of -> not match 
government of -> not match 
Abc of -> match 

Но это не работает. Я не знаю, почему, пожалуйста, помогите мне объяснить это.

+0

Что именно «не работает»? Неправильно ли это, вы не получаете совпадений и т. Д.? –

+0

Неправильный синтаксис регулярного выражения, поэтому строки не совпадают – nguyenngoc101

ответ

0

Вы можете использовать это регулярное выражение с Negative lookahead. Образец типа:

 public static void main(String[] args) { 

     Pattern pattern = Pattern.compile("^(?!state|government|head).*$"); 
     String s = "state of"; 
     Matcher matcher = pattern.matcher(s); 
     boolean bl = matcher.find(); 
     System.out.println(bl); 

     s = "government of"; 
     matcher = pattern.matcher(s); 
     bl = matcher.find(); 
     System.out.println(bl); 

     s = "Abc of"; 
     matcher = pattern.matcher(s); 
     bl = matcher.find(); 
     System.out.println(bl); 
    } 

Надеюсь, что эта помощь!

Смежные вопросы