2014-10-21 3 views
0

У меня есть фиксированный формат, такой как xxx-xxxx. Что такое 3 буквенно-числовых, затем тире, затем 4 буквенно-цифровых. Я новичок в регулярном выражении. Я хотел бы знать, как я могу переносить эту проверку в regex для java.Регулярное регулярное выражение: [aaa-aaaa]

Я знаю, что для/w для любого слова,/d для любой цифры. И x {n} для n числа вхождений. Но как мне все это собрать? Благодарю.

+1

Вы все «знания» вам нужно, но вы не можете положить их вместе? Угадайте, что делает '\ w {3}'. Тогда угадайте, что делает '\ w {3} -'. Теперь попробуйте закончить головоломку. – HamZa

+1

'' \\ w {3} - \\ w {4} "вы можете использовать –

+2

@RuchiraGayanRanaweera -1, вы разрушили (забавную) головоломку для OP: p – HamZa

ответ

1

Держи

Pattern.compile("\\p{Alnum}{3}-\\p{Alnum}{4}"); 
+1

Не могли бы вы объяснить синтаксис? Спасибо – ps4one

+0

@ ps4one '\ p {Alnum}' является символьным классом POSIX, который обозначает любой буквенно-цифровой символ (просто '[\ w]'). Число внутри фигурных скобок задает ожидаемое количество символов. И тире просто тире. – SimY4

0
^[a-zA-Z0-9]{3}-[a-zA-Z0-9]{4}$ 

Вы можете попробовать this.Do не забудьте поставить якоря.

+0

также соответствует '_'. Op ясно говорит, что это буквенно-цифровая строка. –

0

Вы также можете попробовать: http://rubular.com У этого есть лучший образец компиляции и отображения.

Ответ на это: ^\w{3}-\w{4}$

+0

«Лучшая сборка шаблонов» это предложение может ввести в заблуждение. Не могли бы вы рассказать об этом более детально? В любом случае, он использует Java и rubular.com является рубиновым тестером регулярных выражений. В большинстве случаев это приемлемо, но если вы немного погрузитесь в глубь, вы заметите различия в Java и Ruby regex. – HamZa

+0

также соответствует '_'. Op ясно говорит, что это буквенно-цифровая строка. –

+0

Да HamZa, Есть различия в Java и Ruby regex. (В Ruby мы пишем регулярные выражения, ограничивая их с помощью /, а в Java вам нужно удвоить все (\\ вместо \), чтобы обратная косая черта прошла до regex engine) Я бы исправил себя на компиляции шаблонов, где я имею в виду лучшую визуализацию регулярного выражения для предоставленного ввода. Я просто помогал, так как лично мне нравилось рубить и обычно корректировал нарушения. – Blackpirate

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