接受数字,字母和连字符的正则表达式

时间:2012-10-28 18:27:40

标签: c# regex validation webforms

我想要一个正则表达式,它接受所有数字,字母和只有特殊字符的连字符( - )。

我正在尝试这个表达式:^\d+$/[-]/[a-z]但它不起作用。我想接受像这样的表达式:

Emp-IN-0000001

有人可以帮我这个吗?

3 个答案:

答案 0 :(得分:4)

如果它始终是这种格式(Emp-IN-0000001),那么请使用此正则表达式:

^[a-zA-Z]+-[a-zA-Z][a-zA-Z]-[0-9]+$

或者,如果你有扩展的正则表达式:

^[a-zA-Z]+-[a-zA-Z]{2}-\d+$

当总是有七位数时,请使用:

^[a-zA-Z]+-[a-zA-Z]{2}-\d{7}$

你甚至可以说:

^Emp-IN-\d{7}$

如果它恰好是“Emp-IN-”+数字。

顺便说一句,这不是C#特有的,你可以使用任何语言的这些正则表达式,只要它们支持regexp。

答案 1 :(得分:2)

如果你想要遵循这种格式 Emp-IN-0000001 ,那么你可能需要使用这个正则表达式:

^[a-zA-Z]+-[a-zA-Z]+-\d+$

答案 2 :(得分:1)

我并没有真正得到你用正则表达式尝试过的东西,但它实际上就像这样简单:

^[a-zA-Z\d-]+$

或者如果你想允许空字符串:

^[a-zA-Z\d-]*$

如果您对正则表达式使用不区分大小写的修饰符,则可以从两个变体中省略a-zA-Z

我建议您阅读this great tutorial中的一些正则表达式基础知识。