2012-05-07 2 views
0

я нужна определенное строку, чтобы быть в следующем формате: [0000] ANYWORDматча любой AZ/AZ и - символу после некоторого регулярного выражения

так, между скобками [] мне нужно 4 числа, за которым следует пробел , после этого допускаются только символы от a до z и - символов.

таким образом это должно быть разрешено:

[0000] Foo-бар

[0000] Foo

[0000] Foo-бар-Foo

и т.д ..

до сих пор у меня есть:

\[[0-9]{4}\]\s 

соответствует символу [0000], поэтому он связывает скобки с 4 номерами в нем и пробелами. Кажется, я не могу найти что-то, что позволяет чахатчикам после этого. я попробовал поставить сингл "." в конце выражения, поскольку это должно соответствовать любому символу, но это, похоже, не работает.

\[[0-9]{4}\]\s^[A-Z]+[a-zA-Z]*$ 

выше не работает, либо ..

мне нужно это выражение как ValidationExpression для asp.net валидатора.

любая помощь будет оценена

+3

Я не уверен в качестве .NET, но это работает для вашего ввода: http://regexr.com?30sb7. Обратите внимание, что '^' обычно начинается в строке, а '-' должен быть первым в' [] 'для указания буквального, а не диапазона. – mkjeldsen

+0

спасибо, это работает. если вы представите его в качестве ответа, я могу его принять! – Thousand

ответ

1

Это работает для ввода: http://regexr.com/?30sb7. В отличие от ответа Cornstalk он ничего не захватывает, и - действительно может быть размещен позже в диапазоне, если он сбежал.

2

(\[[0-9]{4}\])\s+([A-z\-]+) следует надеяться работать. Он будет записывать числа и буквы в две группы захвата.

+2

Я бы заменил первую группу '\ [([0-9] {4}) \]', потому что сохранение '[' и ']' на самом деле не обязательно ... – hochl

+0

Это зависит от его потребностей .. Но да, это то, о чем стоит упомянуть. – Cornstalks

1

Попробуйте один

@"\[[0-9]{4}\] [a-zA-Z]+(-[a-zA-Z]+)*" 
+0

это регулярное выражение допускает только один необязательный '-' и не соответствует примеру' [0000] foo-bar-foo' –

+0

@ bw_üezi: исправлено, спасибо. Последний? -> * – Tigran

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