2013-05-15 2 views
0

Я пытаюсь проверить строку RegEx в Java, но я не могу заставить ее работать правильно. Я пытаюсь убедиться, что следующая строка «AB10XY» всегда содержится с текстовым полем при выполнении поиска.проверка строки с помощью RegEx

У меня есть следующая строка кода, которая гарантирует, что AB и XY в текстовом поле, но не количество:

boolean checkChar = ((textField.getText().contains("AB")) && (textField.getText().contains("XY"))); 

Я предпочел бы иметь что-то вроде:

boolean checkChar = ((textField.getText().contains("AB[\\d]{2}XY"))); 
+0

*» «AB10XY» всегда содержится с текстовым полем при выполнении поиска ». * Не было бы проще для вас ** и ** пользователя сделать это текстовое поле неизменным? –

+0

Вы намеревались ответить на мой вопрос или просто проигнорировать его? Обратите внимание, что есть, вероятно, лучшие способы сделать это, чем использовать RegEx, но пока у меня не будет более подробной информации об этой проблеме, их сложно сузить. –

+0

Привет Прошу прощения за задержку. Я использовал одно из решений, перечисленных ниже, чтобы исправить проблему, за исключением того, что я добавил скобки к формуле RegEx, чтобы сказать «. * [AB [\\ d] {2} XY]. *« Он отлично работает до сих пор. Я использую это решение, чтобы проверить, находится ли «AB12XY» в пути. например: C: \ Users \ user \ Documents \ Handbacks \ AB12XYmmmd (mmm = month, d = day) – user2385671

ответ

1

Вы можете попробуйте этот способ

boolean checkChar = ((textField.getText().matches(".*?AB[\\d]{2}XY.*"))); 
+0

символьный класс не нужен. – Anirudha

+0

@Anirudh true, но по какой-то причине OP использовал его (возможно, он будет расширен в реальном код) – Pshemo

0

Содержит метод не поддерживает regex..You может использовать matches метод

textField.getText().matches(".*AB\\d{2}XY.*"); 
1

Я предполагаю, что число не 10 все дни, так что вы должны использовать что-то вроде этого:

boolean checkChar = textField.getText().matches(".*AB[\\d]{2}XY.*"); 
0

Использование пакета java.util.regex для обработки регулярных выражений

boolean checkChar = java.util.regex.Pattern.compile("AB[\\d]{2}XY") 
     .matcher(textField.getText()).find(); 
Смежные вопросы