J'ai un script python qui a probablement environ 100 lignes regex chaque ligne correspondant à certains mots.python -regex correspondant à une liste de mots
Le script consomme évidemment jusqu'à 100% de CPU chaque fois qu'il est exécuté (je lui passe fondamentalement une phrase et il retournera tous les mots trouvés trouvés).
Je veux combiner en environ 4 ou 5 différents « compilé » parseurs tels que regex:
>>> words = ('hello', 'good\-bye', 'red', 'blue')
>>> pattern = re.compile('(' + '|'.join(words) + ')', re.IGNORECASE)
Combien de mots puis-je en toute sécurité dans ce domaine et serait-il une différence? À l'heure actuelle, si je lance une boucle sur un millier de phrases aléatoires, il en traite peut-être 10 par seconde, en cherchant à augmenter considérablement cette vitesse de manière à ce qu'elle fasse 500 secondes (si possible).
Aussi, est-il possible à une liste comme ceci?
>>> 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)