Pyhon reguläre Ausdrücke

Python regulären Ausdruck Sonderzeichen

Charakter Beschreibung
\ Das nächste Zeichen wird als Sonderzeichen markiert oder Literalzeichen oder eine Rückwärtsreferenz oder eine Oktal Flucht. Zum Beispiel ‚n‘ entspricht das Zeichen „n“. '\ N' entspricht einem Newline. Sequenz '\\' matches "\" und "\ (" das Spiel "(".
^ Spiele den Anfang des Strings. Wenn die Objekteigenschaft RegExp mehrzeilige gesetzt ist, paßt auch ^ ‚\ n‘ Position nach oder ‚\ r‘.
$ Spiele das Eingangsende des Strings. Wenn das Objekt RegExp Multiline-Eigenschaft gesetzt ist, paßt $ auch die Position vor dem ‚\ n‘ oder ‚\ r‘.
* Entspricht die vorhergehende subexpression null oder mehr Male. Zum Beispiel zo * matches "z" und "Zoo". * Entspricht {0}.
+ Entspricht dem vorhergehenden subexpression ein oder mehrere Male. Zum Beispiel: ‚zo +‘ passt auf „zo“ und „Zoo“, kann aber die „z“ nicht überein. + Entspricht {1}.
? Entspricht die vorhergehenden subexpression Null oder Eins. Zum Beispiel: "tut (es)?" Spiele "do" oder "bedeutet" in dem "do". ? Ist das entspricht {0,1}.
{N} n ist eine nicht negative ganze Zahl ist. Abgleichen der ermittelten n mal. Zum Beispiel: ‚o {2}‘ nicht mit dem „Bob“ in dem ‚O‘, kann aber die „Lebensmittel“ in den beiden o entsprechen.
{N,} n ist eine nicht negative ganze Zahl ist. Passende mindestens n mal. Zum Beispiel: 'o {2,}' nicht mit dem "Bob" in dem 'O', aber es kann alles o "foooood" in passen. 'O {1}' ist äquivalent zu 'o +'. 'O {0,}' ist äquivalent zu 'o *'.
{N, m} m und n sind nicht negative ganze Zahlen, wobei n <= m. Mindestens n-mal und passen bis zu m mal. in den letzten drei o Zum Beispiel: „o {1,3}“ wird „fooooood“ entsprechen. 'O {0,1}' entspricht 'o?'. Bitte beachten Sie, dass keine Leerzeichen zwischen dem Komma und den beiden Zahlen.
? Wenn das Zeichen unmittelbar auf andere Qualifier (*, +,?, {N}, {n,}, {n, m}), wenn die hinteren, nicht gierigen Einstimmungsmuster. Nicht gierig Muster passt so wenig wie möglich die Suchzeichenfolge, und die Standard-gierige Musterübereinstimmungen so viel von der String-Suche. Zum Beispiel der Zeichenfolge "oooo", 'o +?' Am besten für ein einziges "o" und 'o +' wird alle 'o' entspricht.
. Für ein einzelnes Zeichen außer „\ n“ ist. Übereinstimmen umfassen ‚\ n‘, einschließlich der Zeichen, wie die Verwendung von ‚[. \ N]‘ -Modus.
(Muster) Passen Sie die Muster und bekommen das Spiel. Die Anpassung kann von den Spielen erhalten werden muß, in der Sammlung SUBMATCHES verwendet VBScript, JScript wird in den $ 0 verwendet ... $ 9 Objekten. Um Klammern Zeichen übereinstimmen, verwenden Sie ‚\ (‘ oder ‚\)‘.
(?:Muster) Aber nicht zu acquire passenden Mustervergleich ergibt, dass dies ein nicht-Zugriff Spiel, nicht für die spätere Verwendung gespeichert. Diese Verwendung von „oder“ Zeichen (|) die verschiedenen Teile eines Modells zu kombinieren, ist nützlich. Zum Beispiel: ‚Industr (?: Y | n) ist ein Verhältnis von‘ Industrie | mehr kurzen Ausdrücke Industrien.
(? = Muster) Positive Vorerkundung, die Suchzeichenfolge am Anfang eines Spiels Muster String-Matching. Dies ist ein nicht-Zugriff Spiel, das heißt, ist das Spiel nicht für die spätere Verwendung erhalten muß. Zum Beispiel: 'Fenster (= 95 |? 98 | NT | 2000)' kann das "Windows 2000" in dem "Windows" entspricht, kann aber den "Windows 3.1" "Windows" nicht überein. Pre-Check verbraucht keine Zeichen, das heißt, nach dem eine Übereinstimmung auftritt, das letzte Spiel nach dem nächsten Spiel der Suche sofort zu starten, anstatt von den Zeichen beginnen, die Vorerkundung enthält.
(?!Muster) Negative Vorerkundung, am Anfang jeden String-Matching Suchbegriff Einstimmungsmuster. Dies ist ein nicht-Zugriff Spiel, das heißt, ist das Spiel nicht für die spätere Verwendung erhalten muß. Zum Beispiel 'Fenster (95 | 98 ?! | NT | 2000)' können die "Windows 3.1" "Windows übereinstimmen", kann aber die nicht überein "Windows 2000" in der "Windows". Pre-Check verbraucht keine Zeichen, das heißt, nach dem eine Übereinstimmung auftritt, nach dem letzten Spiel unmittelbar nächstes Spiel Suche gestartet, anstatt von den Zeichen beginnen, die Vorerkundung enthält
x | und Spiel x oder y. Zum Beispiel: ‚z | Lebensmittel‘ kann das „z“ oder „Essen“ entsprechen. '(Z | f) OOD' das Spiel "Zood" oder "Essen".
[Xyz] Set von Zeichen. Entspricht ein beliebiges Zeichen enthält. Zum Beispiel: '[abc] entspricht "plain" in der 'a'.
[^ Xyz] Negative Zeichensätze. Jedes Zeichen nicht enthalten. Zum Beispiel: '[^ abc] entspricht "plain" die 'p'.
[Az] Bereich von Zeichen. Entspricht ein beliebiges Zeichen innerhalb des angegebenen Bereichs. Zum Beispiel: ‚[az]‘ Spiel ‚a‘ in jeden Kleinbuchstabe ‚z‘ innerhalb des Bereichs.
[^ Az] Negativer Zeichenbereich. Entspricht ein beliebiges Zeichen nicht in einem festgelegten Bereich. Zum Beispiel: ‚[^ az]‘ kann nicht überein ‚a‘ auf ein beliebiges Zeichen ‚Z‘ innerhalb des Bereichs.
\ b Eine Wortgrenze übereinstimmt, das heißt, bezieht sich auf die Lage und die Zwischenräume zwischen den Wörtern. Zum Beispiel: 'er \ b' matches "nie" in dem 'er', aber das "Verb" nicht in dem 'er' entspricht.
\ B Passende Nicht-Wortgrenze. 'Er \ B' matches "Verb" in dem 'er', sondern die "nie" paßt nicht in dem 'er'.
\ cx Wer passt zu Steuerzeichen durch die x angegeben. Zum Beispiel entspricht \ cM ein Control-M oder Wagenrücklauf. Der Wert von x muss AZ oder az sein. Andernfalls c als Literal ‚c‘ Charakter.
\ d Spiele eine Ziffer. Entspricht [0-9].
\ D Passende ein nicht-numerischen Zeichen. Es ist äquivalent zu [^ 0-9].
\ f Match ein Vorschubzeichens. Entspricht \ x0c und \ Sel.
\ n Spiele eine neue Zeile. Entspricht \ x0a und \ cJ.
\ r Passende einen Wagenrücklauf. Entspricht \ x0d und \ cM.
\ s Spiele keine Leerzeichen, einschließlich Leerzeichen, Tabulatoren, Seitenumbrüche und so weiter. Es ist äquivalent zu [\ f \ n \ r \ t \ v].
\ S Spiele alle Nicht-Leerzeichen. Entspricht [^ \ f \ n \ r \ t \ v].
\ t 匹配一个制表符。等价于 \x09 和 \cI。
\v 匹配一个垂直制表符。等价于 \x0b 和 \cK。
\w 匹配包括下划线的任何单词字符。等价于'[A-Za-z0-9_]'。
\W 匹配任何非单词字符。等价于 '[^A-Za-z0-9_]'。
\xn 匹配 n,其中 n 为十六进制转义值。十六进制转义值必须为确定的两个数字长。例如,'\x41' 匹配 "A"。'\x041' 则等价于 '\x04' & "1"。正则表达式中可以使用 ASCII 编码。.
\num 匹配 num,其中 num 是一个正整数。对所获取的匹配的引用。例如,'(.)\1' 匹配两个连续的相同字符。
\n 标识一个八进制转义值或一个向后引用。如果 \n 之前至少 n 个获取的子表达式,则 n 为向后引用。否则,如果 n 为八进制数字 (0-7),则 n 为一个八进制转义值。
\nm 标识一个八进制转义值或一个向后引用。如果 \nm 之前至少有 nm 个获得子表达式,则 nm 为向后引用。如果 \nm 之前至少有 n 个获取,则 n 为一个后跟文字 m 的向后引用。如果前面的条件都不满足,若 n 和 m 均为八进制数字 (0-7),则 \nm 将匹配八进制转义值 nm。
\nml 如果 n 为八进制数字 (0-3),且 m 和 l 均为八进制数字 (0-7),则匹配八进制转义值 nml。
\un 匹配 n,其中 n 是一个用四个十六进制数字表示的 Unicode 字符。例如, \u00A9 匹配版权符号 (?)。
 
 

 

 举例:

字符串:  s="adsfasdf1230adsf+123adsf123.33adsf-123.66asdg+344.66"
 匹配数字、小数点数字、包含正负号数字;
       a=re.findall('-?\d+\.*\d+|\+?\d+\.*\d+',s)
       a=['1230', '+123', '123.33', '-123.66', '+344.66']
 
 匹配数字、小数点数字、包含正号;
       a=re.findall('\+?\d+\.*\d+',s)
       a=['1230', '+123', '123.33', '123.66', '+344.66']
 
 匹配数字、小数点数字、包含负号;
       a=re.findall('-?\d+\.*\d+',s)
      a=['1230', '123', '123.33', '-123.66', '344.66']
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Ich denke du magst

Origin www.cnblogs.com/chun0070/p/12461958.html
Empfohlen
Rangfolge