Używanie wyrażenia regularnego w instrukcji if w Pythonie


Próbuję dowiedzieć się, jak dołączyć wyrażenie regularne do instrukcji if w języku Python. Mam ramkę danych pandy, w której iteruję po wierszach i chcę wykonać akcję za każdym razem, gdy wiersz zawiera określoną kombinację tekstu. wyrażenie regularne musi pasować do dowolnego ciągu 7 znaków zaczynającego się od dużej litery, po której następuje 6 cyfr (np. R142389)
for index, row in df1.iterrows():
if row[4] == REGEX HERE:
Perform Action

Czy postępuję właściwie? Każda pomoc byłaby bardzo mile widziana!
Zaproszony:
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Tak, możesz to zrobić, po prostu użyj
Mecz
, który będzie zbiegł się tylko na początku linii, z którym jest porównywany. Będziesz musiał użyć
Wyszukaj
, aby wyszukać w całym rzędzie.
Niewielkie wyjaśnienie Regexa:
^
potwierdza pozycję na początku wiersza
[A-Z]
A-Z jeden znak z zakresu od A (indeks 65) do Z (indeks 90) (rozróżniana jest wielkość liter)
\ d {6}
odpowiada cyfrze (równa się
[0-9]
)
{6}
Quantifier-match dokładnie 6 razy
$
zapewnia pozycję na końcu linii lub przed zakończeniem linii na końcu linii
import reregex = re.compile('^[A-Z]\d{6}$')possibles = ['R142389', 'hello', 'J123456']for line in possibles:
if regex.match(line):
print(line)

Wyjście:
R142389
J123456
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Użyłbym modułu
re
import rere.search(pattern, string, flags=0)

W przypadku gdy Wzór Expression, z zastrzeżeniem porównania,
Ciąg
-Stock, z zastrzeżeniem wyszukiwania i
Flagi
-Hacnate Modifators. Ta funkcja zwraca Brak , gdy nie ma zbiegu.
Oto dokumentacja
re
:

https://docs.python.org/2/ library/re.html
https://docs.python.org/2/library/re.html
A oto przykładowa realizacja:

https://www.tutorialspoint.com ... s.htm
https://www.tutorialspoint.com ... s.htm

Aby odpowiedzieć na pytania, Zaloguj się lub Zarejestruj się