0

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

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

Emp-IN-0000001

有人可以帮我弄这个吗?

4

3 回答 3

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# 特定的,您可以将这些正则表达式用于任何语言,只要它们完全支持正则表达式。

于 2012-10-28T18:34:59.167 回答
2

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

^[a-zA-Z]+-[a-zA-Z]+-\d+$
于 2012-10-28T18:36:02.980 回答
1

我真的不明白你用你的正则表达式尝试了什么,但它实际上就像这样简单:

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

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

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

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

我建议您阅读这个很棒的教程中的一些正则表达式基础知识。

于 2012-10-28T18:29:25.097 回答