【发布时间】:2019-03-16 15:47:56
【问题描述】:
我正在尝试在以下条件下验证名称
- 第一个和最后一个字符应该是字母,并且前后不能有空格。
- 如果有任何点,那么应该有一个空格。名称最多可以包含 1 个点和 1 个空格。
- 字长应为 5,20。
代码工作:
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
我能够做到第 1 点,但无法理解如何做到第 2 点。对于第三点,我在正则表达式的最后一个 $ 之前尝试了 {5,20},但它不起作用。
从上面的正则表达式我想验证 - 杰克逊 - 杰克逊博士
并使以下内容无效: - Jackson 博士 # 点后两个空格 (.) - Dr.Jackson # 包含两个点
希望您能解决我的问题。
【问题讨论】:
-
为什么不将
len用于#3?
标签: python regex python-3.x