3
我有一個python腳本,大概有100個左右的正則表達式行,每行匹配某些單詞。python -regex匹配一個單詞列表
腳本顯然會在每次運行時消耗高達100%的cpu(我基本上會傳遞一個句子給它,它會返回找到的任何匹配的單詞)。
我想這些組合成約4或5個不同的「編譯」正則表達式解析器,例如:
>>> words = ('hello', 'good\-bye', 'red', 'blue')
>>> pattern = re.compile('(' + '|'.join(words) + ')', re.IGNORECASE)
多少個字我可以放心地在這一點,它會有所作爲?現在,如果我在一千個隨機語句上運行一個循環,它的處理速度可能是每秒10個,看起來會大大提高這個速度,所以它的速度可能會達到500秒(如果可能)。
另外,是否有可能這樣的列表?
>>> words = ('\d{4,4}\.\d{2,2}\.\d{2,2}', '\d{2,2}\s\d{2,2}\s\d{4,4}\.')
>>> pattern = re.compile('(' + '|'.join(words) + ')', re.IGNORECASE)
>>> print pattern.findall("Today is 2010 11 08)