2013-07-03 3 views
-2

Я ищу регулярное выражение, которое проверяет следующую строку c3a0acfb-cdce-4a5c-a089-43c09578fc0f, оно всегда будет иметь строчную букву, номер и -. Я знаю, что [0-9a-z] проверяет буквы и цифры, но я нужно сказать, что caracter - может появиться в любом месте.Validating string с regex

Может ли кто-нибудь помочь мне, пожалуйста?

Спасибо.

+4

Вы еще что-нибудь пробовали? – JREN

+0

'^ [0-9a-z] {8} - ([0-9a-z] {4} -) {3} [0-9a-z] {12} $' – Ilya

+0

Может также легко проверить регулярное выражение, если ind this place helpful http://www.regexplanet.com/advanced/java/index.html – vcetinick

ответ

3

регулярное выражение:

([a-z0-9\-]+) 

Вышеприведенное позволит использовать алфавиты цифр и дефис.

+0

Вам не нужно скрывать '-': http://stackoverflow.com/questions/7604879/java-regex-illegal-escape-character-in-character-class – ejk314

+0

Уточнение (чтобы оно не зависело от ссылка): вам не нужно избегать '-' *, если это первый или последний символ, указанный в наборе символов *. – ajp15243

2

Предполагая, что это GUID, используйте:

"{0,1}([0-9a-fA-F]){8}-([0-9a-fA-F]){4}-([0-9a-fA-F]){4}-([0-9a-fA-F]){4}-([0-9a-fA-F]){12}" 
+0

Наверное, я был не очень ясен в том, что я написал, извините. Я хотел сказать, что моя строка может иметь буквы в нижнем регистре, цифры и '-', не необходимые в этом порядке ни количество, которое я написал в моем вопросе, вы понимаете? –

+0

Я действительно думал, что то, что вы действительно хотели, было reg-ex для глобального уникального идентификатора. – Bathsheba

+0

Ваш ответ тоже помогает мне, потому что я видел, что я могу проверить длину строки между дефисом. Благодарю. –

0

Попробуйте [0-9a-z\\-]. (Внимание: Это не проверяет длину строки.)

1
([0-9a-z]*)\-([0-9a-z]*)\-([0-9a-z]*) 

Это регулярное выражение должно сделать это в Java вам может понадобиться добавить дополнительный обратный слеш перед -

Если предположить, что это некий количество -

В будущем вы можете экспериментировать на: http://gskinner.com/RegExr/

0

Это так просто! Вы действительно пробовали что-нибудь? Если вы хотите, чтобы соответствовать строка, содержащая строчные буквы, цифры и дефис, вы можете использовать:

[a-z0-9-] 

Если вы строго хотите, чтобы соответствовать выше шаблону, затем:

(([a-z0-9]+)(-)?)+ 

должен работать. Это означает любую буквенно-цифровую цифру, равную одному или нулю дефиса.

Я не уверен, что для дефиса нам нужно использовать/- вместо - непосредственно: D. Поэтому, по крайней мере, сделайте это самостоятельно и позвольте мне также знать: D.

[а-z0-9 -] + также будет работать для вас, но он также будет принимать строки типа:

adcacf--sadcac-das----- 

и даже это будет также принято:

------------- (strings of hyphen) 

Итак, если вы знаете, что вы не получите эти типы строк, вы можете пойти с [a-z0-9 -] +, как сказано в PVR.