是否有正则表达式检查字符串是否只包含大写字母、小写字母、数字和下划线?
当前回答
在计算机科学中,字母数字值通常意味着第一个字符不是数字,而是字母或下划线。后面的字符可以是0-9、A-Z、A-Z或下划线。
你可以这样做:
在PHP下测试:
$regex = '/^[A-Za-z_][A-Za-z\d_]*$/'
或者采取
^[A-Za-z_][A-Za-z\d_]*$
并将其放在您的开发语言中。
其他回答
这里有很多冗长的内容,我非常反对,所以,我的结论是:
/^\w+$/
\w等价于[A-Za-z0-9_],这就是你想要的(除非我们在混合中引入Unicode)。
使用+量词可以匹配一个或多个字符。如果你也想接受一个空字符串,使用*代替。
对于那些寻找unicode字母数字匹配的人,你可能想做一些类似的事情:
^[\p{L} \p{Nd}_]+$
进一步的阅读请参阅Unicode正则表达式(Unicode Consortium)和Unicode正则表达式(Regular-Expressions.info)。
这对我很有用。你可以试试:
[\\p{Alnum}_]
你想要检查每个字符是否符合你的要求,这就是为什么我们使用:
[A-Za-z0-9_]
你甚至可以用简写的形式:
\w
这是等价的(在某些正则表达式中,所以在使用它之前一定要检查一下)。然后,为了表明整个字符串必须匹配,您使用:
^
若要指示字符串必须以该字符开头,则使用
$
若要指示字符串必须以该字符结束。然后使用
\w+ or \w*
表示“1或多个”,或“0或多个”。综上所述,我们有:
^\w*$
^\w*$将适用于以下组合:
1
123
1av
pRo
av1
推荐文章
- Ruby正则表达式中\A \z和^ $的区别
- 用于匹配英国邮政编码的正则表达式
- 将所有非字母数字字符替换为空字符串
- 我如何能匹配一个字符串与正则表达式在Bash?
- 使用RegExp.exec从字符串中提取所有匹配项
- 仅用Regex替换某些组
- 使用正则表达式解析HTML:为什么不呢?
- 正则表达式来匹配不是空格的单个字符
- 在JavaScript中检查字符串包含另一个子字符串的最快方法?
- Python非贪婪正则表达式
- 正则表达式可以用来匹配嵌套模式吗?
- 在bash中使用正则表达式进行搜索和替换
- 将camelCaseText转换为标题大小写文本
- 正则表达式在Javascript中获取两个字符串之间的字符串
- Regex测试字符串是否以http://或https://开头