Używam obecnie re.findall znaleźć i wyizolować słowa po znaku „#” dla tagów hash w ciąg:Jak rozliczać znaki akcentujące dla wyrażenia regularnego w Pythonie?
hashtags = re.findall(r'#([A-Za-z0-9_]+)', str1)
Przeszukuje str1 i wyszukuje wszystkie hashtags. Działa to jednak nie uwzględnia znaków akcentowanych, takich jak te, na przykład: áéíóúñü¿
.
Jeśli jedna z tych liter znajduje się w str1, zapisze ona hashtag aż do litery przed nim. Na przykład #yogenfrüz
będzie #yogenfr
.
muszę być w stanie wyjaśnić wszystkie litery akcentowane, które wahają się od niemieckim, holenderskim, francuskim i hiszpańskim, dzięki czemu można zaoszczędzić hashtags jak #yogenfrüz
Jak mogę to zabrać
użyć 're.UNICODE' flagę. –
@AshwiniChaudhary: flaga UNICODE nie sprawi, że zakres zastosowany będzie pasował do znaków spoza ASCII, no. Jeśli powiesz regexowi, żeby pasował do 'a-z', to bierze on literalny zakres, a nie ludzką interpretację, że' a' i 'á' w pewnym sensie są tym samym. –
@MartijnPieters: więc, co to zrobi? ;-) – JohnTortugo