我想匹配字符串,使用 Pythons 正则表达式模块。
就我而言,我想验证字符串是否由“_”组合的大写字母开始、结束和组成。例如,以下字符串是有效的:“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"
那么我的问题是什么?验证包含空格的长字符串非常非常慢。我怎样才能避免这种情况?我的模式错了吗?这种行为的原因是什么?
以下是一些数字:
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
提前感谢您的回答和回复。:-) 保罗