2015-01-15 2 views
-1

Я хочу проверить, содержит ли моя строка только допустимые символы. Все работает правильно, например 7B, 77B или 7BBBB, но когда я ввожу что-то вроде этого 7B7 или 7BB2 это не соответствует.Образец (строка) допускает символы только один раз

Все работает нормально, но когда целое число является последним символом, оно не работает.

Не могли бы вы рассказать мне, что не так с этим кодом?

pattern = Pattern.compile("[0-9]*[a-f]*[A-F]*"); 
matcher = pattern.matcher(stNumber); 
if (matcher.matches()) {...} 
+0

Что точное правило вы пытаетесь подстать? Похоже, вам не нужно регулярное выражение, если вы выполняете проверку. – Kon

ответ

2

Если вы хотите смешать цифры и буквы в различном порядке вам нужно STH нравится:

Pattern pattern = Pattern.compile("[\\da-fA-F]*") 
+1

Спасибо, он отлично работает;) –

+0

Если ответ проработан, выберите его как правильный. Таким образом, люди с той же проблемой найдут, что делать, и вы вознаградите человека, который потратил время и нейроны, чтобы помочь вам. –

+0

Я знаю, но мне нужно подождать несколько минут после активации этой опции. –

0

Почему бы не попробовать это так?

// Compile this pattern. 
Pattern pattern = Pattern.compile("[0-9]*[a-f]*[A-F]*[0-9]*"); 

// See if this String matches. 
Matcher m = pattern.matcher("num123"); 
if (m.matches()) { 
    System.out.println(true); 
} 

Source

0

Вы пытаетесь проверить, что строка имеет только цифры и буквы, и ничего другого?

Если это так попробуйте следующее:

pattern = Pattern.compile("^[a-z-A-Z\\d]*$"); 
matcher = pattern.matcher(stNumber); 
if (matcher.matches()) {...} 
Смежные вопросы