2016-05-27 4 views
0

Я хочу совместить диапазон алфавита между a и z, кроме x.Регулярные выражения: исключение в класс символов

Я использую API java.util.regex для этого.

Моя картина:

[a-z^x] // here a-z shows a range between a to z and^means negation 

Пример

  • Если я типа "а", он должен соответствовать.
  • Если я типа "х", он не должен соответствовать
+1

Что вы пробовали? Пожалуйста, добавьте код, который не работает должным образом – JohannisK

ответ

2

Вы можете переписать Pattern следующим образом:

[a-z&&[^x]]

Пример

String[] test = {"abcd", "abcdx"}; 
//       | range 
//       | | and 
//       | | | new class excluding "x" 
//       | | | | adding quantifier for this example 
Pattern p = Pattern.compile("[a-z&&[^x]]+"); 
for (String s: test) { 
    System.out.println(p.matcher(s).matches()); 
} 

Выход

true 
false 
+0

спасибо Mena. – Siddharth

+0

@ Сиддхарт, пожалуйста. – Mena