我正在尝试验证以下条件下的名称
代码工作:
def check(word):
matchObj = re.match( r'^(([^ ]?)(^[a-zA-Z]).*([a-zA-Z]$)([^ ]?))$', word, re.M|re.I)
if matchObj:
return True
else:
return False
我能做第一点,但无法理解如何做第二点。对于第三点,我在regex的最后一个$
之前尝试了{5,20}
,但它不起作用。你知道吗
我想从上面的正则表达式中验证 -杰克逊 -杰克逊医生
并使以下内容无效: -杰克逊博士#点后两个空格(.) -杰克逊博士有两个点
希望你能解决我的问题。你知道吗
您可以将此正则表达式与lookahead断言一起使用:
RegEx Demo
正则表达式详细信息:
(?mi)
:启用多行和忽略大小写模式^
:开始[a-z]
:在开头匹配一个字母(?!(?:.*\.){2})
:否定的前瞻性断言我们没有超过一个点(?!(?:.* ){2})
:否定的前瞻性断言我们没有超过一个空间(?!.*\.[a-z])
:否定前瞻断言如果我们有一个点,那么它后面就没有一个字母[a-z. ]{3,18}
:将给定字符中的3到18个匹配到使总长度为5到20[a-z]
:在结尾前匹配一个字母$
:结束相关问题 更多 >
编程相关推荐