re.search(pattern, string) Suchen Sie den ersten passenden Teil der Zeichenfolge
Das r am Anfang des Musters bedeutet rohe Zeichenfolge, und der Backslash wird unverändert an die Suche übergeben.
In [11]: import re
In [12]: str = 'Less but better'
In [13]: match = re.search(r'\s\w\w\w\s',str)
In [14]: print 'found:', match.group()
found: but
Wenn keine übereinstimmende Zeichenfolge vorhanden ist, wird sie als Keine zurückgegeben. Überprüfen Sie sie daher mit der if-Anweisung.
str = 'Less but better'
match = re.search(r'\s\w\w\w\s',str)
if match:
print 'found:', match.group()
else:
print 'Not found'
re.findall(pattern, string) Gibt alle Übereinstimmungen zurück
str = 'He who moves not forward, goes backward.'
matches = re.findall(r'\w{3}', str)
Nehmen Sie 3 Zeichen heraus. Suche ab dem nächsten passenden.
In [15]: print matches
['who', 'mov', 'not', 'for', 'war', 'goe', 'bac', 'kwa']
Wenn Sie nur die Wörter extrahieren möchten, gehen Sie wie folgt vor.
In [16]: matches = re.findall(r'\w+', str)
In [17]: matches
Out[17]: ['He', 'who', 'moves', 'not', 'forward', 'goes', 'backward']
re.match(pattern, string) Überprüfen Sie, ob es mit dem regulären Ausdruck vom Anfang der Zeichenfolge übereinstimmt
In [133]: str = 'Information is not knowledge.'
In [134]: match = re.match(r'I',str, re.M|re.I)
In [135]: print match
<_sre.SRE_Match object at 0x0000000018D774A8>
In [136]: print match.group()
I
In [137]: match = re.match(r'i',str)
In [138]: print match
None
| Reguläre Ausdrücke | Bedeutung |
|---|---|
| a,A,9 | Entspricht es dem angegebenen Zeichen? |
| . | Ein anderes Zeichen als Zeilenumbruch |
| \w | Brief(a-zA-Z0-9) |
| \W | Andere als Briefe |
| \s | Leerer Charakter(space,tab,return) |
| \S | Andere als weiße Zeichen |
| \d | Zahlen(0-9) |
| \t | Tab |
| \n | newline |
| \r | return |
| \b | Zeichenbegrenzer"xxxx"Anführungszeichen. Stimmt nicht überein, es sei denn, es schließt das Zeichen ein |
| ^ | Der Anfang der Zeichenfolge |
| $ | Das Ende der Zeichenfolge |
| |Stornierung von Sonderzeichen |
[ ] [] Repräsentiert einen Zeichensatz. [abc] bedeutet a oder b oder c.
| Reguläre Ausdrücke | Bedeutung |
|---|---|
| * | Wiederholen Sie 0 oder mehrmals |
| + | Ein- oder mehrmals wiederholen |
| ? | Wiederholen Sie 0 oder 1 Mal |
| {n} | N-mal wiederholen |
group Wenn Sie es in () einschließen, kann es zu einer Gruppe gemacht werden, und ein Teil des passenden Teils kann herausgenommen werden.
str = 'Change before you have to.'
match = re.search(r'(\w+)\s(\w+)\s(\w+)\s(\w+)\s([\w.]+)',str)
if match:
print 'found:', match.group()
else:
print 'Not found'
group () ... Passender Teil groups () ... in Gruppen unterteilt Gruppe (n) ... Extrahieren Sie die n-te Gruppe. Die allererste ist Gruppe (1).
In [15]: print match.group()
Change before you have to.
In [16]: print match.groups()
('Change', 'before', 'you', 'have', 'to.')
In [17]: print match.group(1)
Change
Bei Verwendung einer Gruppe mit findall
In [18]: matches = re.findall(r'(\w+):(\d+)',str)
In [19]: matches
Out[19]: [('aaa', '111'), ('bbbb', '2222'), ('ccccc', '33333')]
Hier oder Hier [Hier] Ich verwies auf (http://www.tutorialspoint.com/python/python_reg_expressions.htm)
Recommended Posts