小编Pet*_*ter的帖子

当字符串中有空格时,Python正则表达式会变慢

我想使用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)

感谢您的提名和提前回复.:-)保罗

python regex

9
推荐指数
1
解决办法
411
查看次数

标签 统计

python ×1

regex ×1