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