繁体   English   中英

字母,短划线,下划线,数字和空格的正则表达式

[英]Regular expression for letters, dash, underscore, numbers, and space

这是我的尝试

def matcher(ex):
    if re.match(r'^[\w|\d][A-Za-z0-9_-]+$', ex):
        print 'yes'

我的目标是仅匹配满足以下所有内容的提交

  1. 仅以字母或数字开头,并且
  2. 只允许使用字母,空格,短划线,下划线和数字
  3. 所有结束空格都被剥离

在我的正则表达式中, matcher('__')被认为是有效的。 如何修改以实现我真正想要的东西? 我相信\\w还包括下划线。 matcher('_')不匹配......

def matcher(ex):
    ex = ex.rstrip()
    if re.match(r'^[a-zA-Z0-9][ A-Za-z0-9_-]*$', ex):
        print 'yes'

原始正则表达式中的问题:

  1. | 并不意味着在字符类中交替,它意味着字面上的管道字符。

  2. 你使用+作为你的后续字符,意思是一个或多个,所以像'_'这样的单字符字符串就不匹配了。

  3. 你在你的第一个角色中使用了\\w ,它接受了下划线。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM