Voraussetzung ist, dass die Bibliothek "re" importiert wird.
import re
Alle folgenden Notationen extrahieren nur den Textteil, und die Bedingungen zum Zeitpunkt der Extraktion werden in Gruppen () angezeigt. Die Bestätigung wird extrahiert, wenn auch die Textbedingungen in der Gruppe übereinstimmen. Negativ wird extrahiert, wenn die Textbedingungen in der Gruppe nicht übereinstimmen.
Name | Beschreibungsmethode | Überblick |
---|---|---|
Positiver Ausblick | Text(?=xxx) | Holen Sie sich den Textteil, wenn xxx übereinstimmt |
Negativer Ausblick | Text(?!xxx) | Textteil abrufen, wenn xxx nicht übereinstimmt |
Bejahender Rückblick | (?<=xxx)Text | Holen Sie sich den Textteil, wenn xxx übereinstimmt |
Negativer Ausblick | (?<!xxx)Text | Textteil abrufen, wenn xxx nicht übereinstimmt |
Durch Einfügen von "(? = Xxx)" nach dem zu extrahierenden Text wird der Textteil extrahiert, wenn der zu extrahierende Text übereinstimmt und der "xxx" -Teil ebenfalls übereinstimmt.
re.findall('AB(?=CDEF)', 'ABCDEF') #['AB']
re.findall('AB(?=DEF)', 'ABCDEF') #[]
re.findall('AB(?=CD)', 'ABCDEF') #['AB']
re.findall('.+(?=CD)', 'ABCDEF') #['AB']
re.findall('AB(?=[A-Z]{2,3})', 'ABCDEF') #['AB']
Schreiben Sie in negativer Vorausschau nach dem zu extrahierenden Text "(?! Xxx)". Extrahieren Sie den Textteil, wenn der Textteil übereinstimmt und der xxx-Teil nicht übereinstimmt
re.findall('AB(?!CDEF)', 'ABCDEF') #[]
re.findall('AB(?!DEF)', 'ABCDEF') #['AB']
re.findall('AB(?!CD)', 'ABCDEF') #[]
Da dies abgelehnt wird, ist das Ergebnis das Gegenteil der Vorausschau.
Durch Schreiben des Textes, den Sie nach "(? <= Xxx)" extrahieren möchten, wird der Textteil extrahiert, wenn der "xxx" -Teil übereinstimmt und der Text auch mit dem Teil übereinstimmt.
re.findall('(?<=ABCD)EF', 'ABCDEF') #['EF']
re.findall('(?<=BC)EF', 'ABCDEF') #[]
re.findall('(?<=)EF', 'ABCDEF') #['EF']
Durch Schreiben des Textes, den Sie nach "(? <! Xxx)" extrahieren möchten, wird der Textteil extrahiert, wenn der "xxx" -Teil nicht vorhanden ist und der Text mit dem Teil übereinstimmt.
re.findall('(?<!ABCD)EF', 'ABCDEF') #[]
re.findall('(?<!BC)EF', 'ABCDEF') #['EF']
re.findall('(?<!)EF', 'ABCDEF') #[]
text = 'Python python PYTHON'
re.findall('py(?=thon)', text) #['py']
re.findall('Py|py(?=thon)', 'Python python PYTHON') #['Py', 'py']
re.findall('py(?=thon)', 'Python python PYTHON', re.IGNORECASE) #['Py', 'py', 'PY']
text = 'Adresse:Shinjuku-ku, Tokio 〇〇〇〇 Turm\r Klicken Sie hier für die Karte'
re.findall('(?<=:).*(?=\r)', text)[0] #Shinjuku-ku, Tokio 〇〇〇〇 Turm
[Referenzseite] Beherrsche den Blick nach vorne und den Blick hinter reguläre Ausdrücke!
Recommended Posts