2016-08-04 4 views
-1

Ich habe Probleme herauszufinden, was genau dieses Regex-Muster sucht hauptsächlich wegen der Nummer am Ende. Von dem, was ich sagen kann, heißt es, suche nach irgendeinem Zeichen, das nicht a-z ist und wiederhole es für die ganze Zeichenfolge. Was macht die 3?Python Regex-Ausdruck, was bedeutet + X?

[^a-z.+3] 

Vielen Dank!

+2

'3' ist nur eine wörtliche. Es entspricht Char "3". –

+0

Es ist wirklich nur eine halbe Frage. Abgesehen von den einfachen technischen Details, was eine Charakterklasse ist, ohne zu sehen, wie sie verwendet wird, ist es wirklich nur eine halbe Frage. Wenn Sie die Frage neu auflisten, stimme ich sie ab. – sln

Antwort

5

In einer Zeichenklasse alle Zeichen ihrer besonderen Bedeutung (falls vorhanden) verlieren, nur die erste ^ verwendet wird, um die Klasse zu negieren, - ist Zur Definition eines Bereichs (außer an der ersten und letzten Position) kann ein eventueller Backslash eine Escape-Sequenz starten und ] schließt die Klasse.

3 ist die wörtliche Charakter 3, + ist die wörtliche Charakter +, . ist eine wörtliche ., nichts weiter.

[^a-z.+3] entspricht ein Zeichen, das nicht in dieser Liste und ist die gleiche wie [^.a-z3+] oder [^+.a-z3]

1

Es sucht alles not in lowercase a-z, dot, plus sign and number 3 Versuchen Sie here. Paste in Ihrem RegexMuster

0
[^a-z.+3] 

[^a-z.+3] Spiel ein einzelnes Zeichen nicht in der Liste unten

a-z ein einzelnes Zeichen in dem Bereich zwischen a und z (Groß- und Kleinschreibung)

.+3 ein einzelnes Zeichen in der Liste + 3 buchstäblich

aus. https://regex101.com/r/wI5hG2/1

So in einer Zeile dieses Spiel ein caracter verschiedenen von a to z und . und + und 3

2

[^a-z.+3] Spiel anderen Zeichen als a-z.+ und 3

ein Beispiel läßt nehmen,

x = 'stack overflow... 363 is amazing++useful' 

lassen Sie jedes Element in Regex eins nach dem anderen.

[^a-z] Matches andere Zeichen als a-z

In [19]: re.findall(r'[^a-z]', x) 
Out[19]: [' ', '.', '.', '.', ' ', '3', '6', '3', ' ', ' ', '+', '+'] 

[^a-z.] Matches andere Zeichen als a-z und .

In [20]: re.findall(r'[^a-z.]', x) 
Out[20]: [' ', ' ', '3', '6', '3', ' ', ' ', '+', '+'] 

[^a-z.+] Matches andere Zeichen als a-z.+

In [21]: re.findall(r'[^a-z.+]', x) 
Out[21]: [' ', ' ', '3', '6', '3', ' ', ' '] 

[^a-z.+3] Spiele andere Zeichen als a-z.+3

In [22]: re.findall(r'[^a-z.+3]', x) 
Out[22]: [' ', ' ', '6', ' ', ' ']