LimiT-MaTz
30-10-2008, 14:32
Maledette regex mi fanno sempre impazzire
dato un insieme di stringhe "AAAAA_99 * BLA BLA *","BRIC_32","SESTI33 *33 *"
devo creare una regexp tale che faccia match della stringa se e solo se non è seguita da .*
io ho pensato (evidentemente male) ad una cosa del genere:
import re
REGEX = re.compile("((?P<id>\w+)\s*)(?! .* )")
for toparse in ["AAAAA_99 * BLA BLA *","BRIC_32","SESTI33 *33 *"]:
m = REGEX.search(toparse)
if(m != None): print m.group('id')
dovrebbe matchare solo "BRIC_32" ma non avviene, non riesco a capire il problema.
e' stato scelto di usare search perchè queste stringhe potrebbero essere immerse in altro testo.
dato un insieme di stringhe "AAAAA_99 * BLA BLA *","BRIC_32","SESTI33 *33 *"
devo creare una regexp tale che faccia match della stringa se e solo se non è seguita da .*
io ho pensato (evidentemente male) ad una cosa del genere:
import re
REGEX = re.compile("((?P<id>\w+)\s*)(?! .* )")
for toparse in ["AAAAA_99 * BLA BLA *","BRIC_32","SESTI33 *33 *"]:
m = REGEX.search(toparse)
if(m != None): print m.group('id')
dovrebbe matchare solo "BRIC_32" ma non avviene, non riesco a capire il problema.
e' stato scelto di usare search perchè queste stringhe potrebbero essere immerse in altro testo.