我想使用Pythons regex模块匹配字符串.
在我的情况下,我想验证字符串的开始,结束和由"_"组合的大写字母组成.例如,以下字符串有效:"MY_HERO2".以下字符串无效:"_MY_HREO2","MY HERO2","MY_HERO2_"
要验证字符串,我使用以下代码:
import re
my_string = "MY_HERO"
p = re.compile("^([A-Z,0-9]+_??)+[A-Z,0-9]$")
if p.match(my_string):
print "validated"
Run Code Online (Sandbox Code Playgroud)
那我的问题是什么?验证包含空格的长字符串非常非常慢.我怎么能避免这个?我的模式错了吗?这种行为的原因是什么?
这是一些数字:
MY_HERO2 --> 53 ms
MY_SUPER_GREAT_UNBELIEVABLE_HERO --> 69 microseconds
MY_SUPER_GREAT_UNBELIEVABLE HERO --> 223576 microseconds
MY_SUPER_GREAT_UNBELIEVABLE_STRONG_HERO --> 15 microseconds
MY_SUPER_GREAT_UNBELIEVABLE_STRONG HERO --> 979429 microseconds
Run Code Online (Sandbox Code Playgroud)
感谢您的提名和提前回复.:-)保罗