我想要一个正则表达式,它接受所有数字,字母和只有特殊字符的连字符( - )。
我正在尝试这个表达式:^\d+$/[-]/[a-z]
但它不起作用。我想接受像这样的表达式:
Emp-IN-0000001
有人可以帮我这个吗?
答案 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-z
或A-Z
。
我建议您阅读this great tutorial中的一些正则表达式基础知识。