sytuacja:Przechwytywanie zawartość regex i usunąć je, sprawnie
- tekst: ciąg
- R: regex, który pasuje część napisu. To może być kosztowne do obliczenia.
Chcę zarówno usunąć dopasowania R z tekstu, i zobaczyć, co faktycznie zawierają. Obecnie robię to tak:
import re
ab_re = re.compile("[ab]")
text="abcdedfe falijbijie bbbb laifsjelifjl"
ab_re.findall(text)
# ['a', 'b', 'a', 'b', 'b', 'b', 'b', 'b', 'a']
ab_re.sub('',text)
# 'cdedfe flijijie lifsjelifjl'
To uruchamia regex dwa razy, w pobliżu, jak mogę powiedzieć. Czy istnieje technika, aby zrobić to wszystko po przejściu, być może przy użyciu re.split? Wygląda na to, że z rozwiązaniami opartymi na podzieleniu musiałbym wykonać regex przynajmniej dwa razy.
Przynajmniej 3 dobre zestawy odpowiedzi. Mój jest szybki i prosty, używając re.split(). Deestan ujawnia wszystkie informacje o meczach za pomocą programu finditer() i programów Jona Cage'a, że funkcje mogą być używane w re.sub, który jest sprytny. –