Comme condition préalable, la bibliothèque «re» est importée.
import re
Toutes les notations suivantes extraient uniquement la partie de texte, et les conditions au moment de l'extraction sont affichées dans les groupes (). L'affirmation est extraite lorsque les conditions de texte dans le groupe correspondent également. Le négatif est extrait lorsque les conditions de texte du groupe ne correspondent pas.
Nom | Méthode de description | Aperçu |
---|---|---|
Regard positif vers l'avenir | texte(?=xxx) | Récupère la partie de texte lorsque xxx correspond |
Perspectives négatives | texte(?!xxx) | Obtenir une partie de texte lorsque xxx ne correspond pas |
Regard affirmatif derrière | (?<=xxx)texte | Récupère la partie de texte lorsque xxx correspond |
Perspectives négatives | (?<!xxx)texte | Obtenir une partie de texte lorsque xxx ne correspond pas |
En insérant (? = Xxx)
après le texte que vous voulez extraire, la partie de texte est extraite lorsque le texte que vous voulez extraire correspond et la partie xxx
correspond également.
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']
En cas d'anticipation négative, écrivez (?! Xxx)
après le texte que vous souhaitez extraire.
Extraire la partie de texte lorsque la partie de texte correspond et que la partie xxx
ne correspond pas
re.findall('AB(?!CDEF)', 'ABCDEF') #[]
re.findall('AB(?!DEF)', 'ABCDEF') #['AB']
re.findall('AB(?!CD)', 'ABCDEF') #[]
Puisqu'il est refusé, le résultat est à l'opposé de l'anticipation.
En écrivant le texte que vous souhaitez extraire après (? <= Xxx)
, la partie de texte est extraite lorsque la partie xxx
correspond et le texte correspond également à la partie.
re.findall('(?<=ABCD)EF', 'ABCDEF') #['EF']
re.findall('(?<=BC)EF', 'ABCDEF') #[]
re.findall('(?<=)EF', 'ABCDEF') #['EF']
En écrivant le texte que vous voulez extraire après (? <! Xxx)
, la partie de texte est extraite lorsque la partie xxx
n'existe pas et que le texte correspond à la partie.
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 de rue:Shinjuku-ku, Tokyo 〇〇〇〇 Tour\r Cliquez ici pour la carte'
re.findall('(?<=:).*(?=\r)', text)[0] #Shinjuku-ku, Tokyo 〇〇〇〇 Tour
[Site de référence] Maîtrisez la vision en avant et en arrière des expressions régulières!
Recommended Posts