Czy istnieje sposób na łączenie grup i * funkcji wyrażeń regularnych, aby działały tak jak tokenizer/splitter. Próbowałem to:Czy grupy Regex i * karty wieloznaczne mogą współpracować ze sobą?
my_str = "foofoofoofoo"
pattern = "(foo)*"
result = re.search(pattern, my_str)
ja liczyłem moje grupy może wyglądać
("foo", "foo", "foo", "foo")
Ale tak nie jest. Byłem tym zaskoczony, ponieważ? Funkcje grupowe działają razem:
my_str= "Mr foo"
pattern = "(Mr)? foo"
result = re.search(pattern, my_str)
wątpię, że będzie działać, ale można dostać to, co chcesz za pomocą 're.findall (" foo "," foofoofoofoo ")". Aha, i proszę nie używać 'str' jako nazwy zmiennej. –
Zmieniłem 'str' na' my_str', ponieważ 'str' cienie są wbudowane. – jamylak
ha, tak, przepraszam, str był tylko przykładem. Ten kod prawdopodobnie nie jest poprawny pod względem składniowym. Ponadto widziałem metodę findall i to zdecydowanie by działało. Byłem po prostu ciekawy w bardziej ogólnym sensie. –