Python の正規表現モジュールを使用して、文字列を照合したいと思います。
私の場合、文字列の開始、終了、および「_」で結合された大文字で構成されていることを確認したいと思います。例として、「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
事前にアンサーと応答をありがとう。:-) ポール