Python正则表达式精确匹配

ehs*_*adi 0 python regex python-2.7

我想检查我的输入的长度是否为任何类型的字符 {5,50} 。我使用了这段代码:

re.match('.{5,50}', my_string)
Run Code Online (Sandbox Code Playgroud)

问题是,当字符串超过 50 个字符时,它不会返回 None。我应该怎么办?

phi*_*hag 5

在这种特定情况下,不需要使用正则表达式。反而

5 <= len(my_string) <= 50
Run Code Online (Sandbox Code Playgroud)

足够了。如果您坚持使用正则表达式,请确保包含字符串的^开头和$结尾:

re.match(r'^.{5,50}$', my_string)
Run Code Online (Sandbox Code Playgroud)

^此处是可选的,因为re.match- 与re.search- 相反,始终从字符串的开头开始匹配。