2014-11-12 5 views
1

У меня есть конкретный ключ, который мне нужен. Ключ состоит из 10 наборов из 4 разделенных тире. Комбинация может быть комбинацией букв или цифр.java string matching with regex

Пример.

aa11-bb22-cc33-44dd-55ee-66ff-gg77-hh88-99ii-jj10

Я просто хочу, чтобы проверить структуропостроения 10 комплектов 4, разделенных дефисом.

Возможно, это соответствует регулярному выражению, но я не знаю как.

Любая помощь будет оценена по достоинству.

+0

Регулярное выражение для этого не должно быть затруднительным. Вы просмотрели [учебники] (http://docs.oracle.com/javase/tutorial/essential/regex/)? – manouti

ответ

4
^[a-zA-Z0-9]{4}(?:-[a-zA-Z0-9]{4}){9}$ 

Try this.See demo.

http://regex101.com/r/kP8uF5/11

+0

хорошая ссылка ... не знала, что что-то подобное существовало для тестирования регулярных выражений. – Jigish

+0

@Jigish Там более одного места. Например. http://www.regexplanet.com. – ajb

1
([a-zA-Z0-9]{4}-){9}[a-zA-Z0-9]{4} 

Вот регулярное выражение в действии: http://regex101.com/r/xR1wV3/1

Объяснение:

  1. [a-zA-Z0-9] -> любой символ от А до Z, A до Z и от 0 до 9
  2. [a-zA-Z0-9]{4} ->{4} указывает ровно 4. Так [a-zA-Z0-9]{4} означает ровно 4 символа
  3. [a-zA-Z0-9]{4} - -> добавить черту (-) в конец для соответствия разделителям тире. Оно должно совпадать с aa11- для например
  4. ([a-zA-Z0-9]{4}-) -> поставить # 3 в круглые скобки
  5. ([a-zA-Z0-9]{4}-){9} -> добавить {9} в круглых скобках указать, что эта модель повторить 9 раз
  6. ([a-zA-Z0-9]{4}-)[a-zA-Z0-9]{4} -> Добавить [a-zA-Z0-9]{4} в конце концов, чтобы соответствовать последний набор 4-х символов (так же, как # 2 выше)
+0

Используя инструмент, который @vks отправил: Вот мое регулярное выражение: либо один работает: http://regex101.com/r/xR1wV3/1 – Jigish

+0

Показаны демо лучшие !!!!!! :), пожалуйста, включите его в ваш ans, а также – vks

+0

Я добавил его в качестве отдельного комментария, но добавил его также в ответ. Благодарю. – Jigish

0

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

(?!.*_)(\w{4}-){9}\w{4} 

Это использует тот факт, что \w означает «любая буква, номер или знак подчеркивания» и отрицательный внешний вид впереди препятствует подчеркиванию.

+0

@nhahtdh да, я знаю это, но если вы прочтете мой ответ, вы увидите, что это не проблема, потому что я использую негативный взгляд вперед, чтобы утверждать, что на входных данных нет никаких подчеркиваний. Я использовал '\ w' с NLA, чтобы сделать регулярное выражение короче всех. – Bohemian