C'è un modo per combinare i gruppi e le caratteristiche * delle espressioni regolari per agire come un tokenizer/splitter. Ho provato questo:I gruppi Regex e * i caratteri jolly possono funzionare insieme?
my_str = "foofoofoofoo"
pattern = "(foo)*"
result = re.search(pattern, my_str)
speravo miei gruppi potrebbero apparire come
("foo", "foo", "foo", "foo")
Ma non è così. Sono stato sorpreso da questo perché il? e le funzioni di gruppo funzionano insieme:
my_str= "Mr foo"
pattern = "(Mr)? foo"
result = re.search(pattern, my_str)
dubito che avrebbe funzionato, ma si può ottenere ciò che si vuole utilizzare 're.findall (" foo "," foofoofoofoo ")'. Oh, e per favore non usare 'str' come nome di variabile. –
Ho cambiato 'str' in' my_str' dato che 'str' ombreggia il built-in. – jamylak
ah si scusa, str era solo un esempio. Quel codice probabilmente non è sintatticamente corretto. Inoltre, ho visto il metodo di ricerca e che funzionerebbe sicuramente. Ero solo curioso in un senso più generale. –