最近我得到了:^[-_[a-zA-Z0-9]*$
仍然允许字符串以数字开头。当到处都有资源时,可以问这样的问题。我只是需要快速的东西,并且在查找RegEx时遇到问题。
有效输入示例:Account-Numbers_2010 | NewMoney | test_data | a1B2-c3_d4_5e-6f
输入示例无效:2010_Account_Numbers | New$Money | %test*data | 1aB2
答案 0 :(得分:7)
这应该成功:
"^[A-Za-z_-][A-Za-z0-9_-]*$"
[A-Za-z_-]
表示字母或下划线或连字符
[A-Za-z0-9_-]*
是相同的,但也允许数字
所以这将允许字母,下划线,连字符和数字,但开头没有数字。
查看有效的输入示例Account-Numbers_2010 | NewMoney | test_data | a1B2-c3_d4_5e-6f
,您可能还想允许空格和|
。这个允许他们:
"^[A-Za-z_ |-][A-Za-z0-9_ |-]*$"
这个正确匹配Account-Numbers_2010 | NewMoney | test_data | a1B2-c3_d4_5e-6f
而非2010_Account_Numbers | New$Money | %test*data | 1aB2
。
答案 1 :(得分:4)
正则表达式需要2个部分。第一个字符,然后是其余字符。
^[a-zA-Z_-][a-zA-Z0-9_-]*$
这说:
从
a-z
或A-Z
或_
或-
中的任何字符开始。然后按照任何字母数字字符或_
或-
进行操作。
答案 2 :(得分:1)
我希望这会有所帮助
^[a-zA-Z]([a-zA-z0-9_-]){0,}