正则表达式允许破折号

时间:2014-09-16 22:23:16

标签: asp.net regex

我目前需要允许" - "登录此正则表达式^[a-zA-Z0-9]*$

3 个答案:

答案 0 :(得分:1)

只需将其添加为左括号后的第一个字符:^[-a-zA-Z0-9]*$

或者,将一个或多个字母/数字与短划线相匹配:^[a-zA-Z0-9]+-[a-zA-Z0-9]+$

答案 1 :(得分:0)

您可以使用这样的正则表达式:

^[a-z\d]+[-a-z\d]+[a-z\d]+$

<强> Working demo

enter image description here

我们的想法是使用不敏感的标记来避免使用A-Za-z并仅使用a-z。并使用\d作为0-9的快捷方式。

因此,基本上正则表达式由三部分组成:

^[a-z\d]+   ---> Start with alphanumeric characters
 [-a-z\d]+  ---> can continue with alphanumeric characters or dashes
 [a-z\d]+$  ---> End with alphanumeric characters

答案 2 :(得分:0)

可以在打开支架之后[或在关闭支架之前]立即包含连字符 ]在角色类中。您不应该包含在字符类的中间,否则它将被视为范围字符,并且某些正则表达式引擎也可能不起作用。

在您的情况下,两者都是有效的解决方案

(^[-a-zA-Z0-9]*$) - Starting of the Char class  
(^[a-zA-Z0-9-]*$) - End of the Char class

<强>演示:
http://regex101.com/r/yP3sH7/2