2016-10-30 12 views
0

Es ist eine Variable, die ist:Python Regular Expression und Metazeichen

line="s(a)='asd'" 

Ich versuche, einen Teil zu finden, die "s()" enthält.

Ich habe versucht, mit:

re.match("s(*)",line) 

Aber es scheint, dass es nicht in der Lage für Zeichen zu suchen ist, die ()

Gibt es eine Möglichkeit, und es in Python drucken zu finden beinhaltet?

+1

Ich würde empfehlen, dass Sie sich mit der regulären Ausdruckssyntax vertraut machen: https://docs.python.org/2/library/re.html#regular-expression-syntax (zum Beispiel '*' doesn Mach nicht, was du wahrscheinlich denkst. – NPE

+0

Warum wird er downvoted? – pylang

Antwort

3

Ihre Regex ist das Problem hier.

können Sie verwenden:

>>> line="s(a)='asd'" 
>>> print re.findall(r's\([^)]*\)', line) 
['s(a)'] 

RegEx Breakup:

s  # match letter s 
\( # match literal (
[^)]* # Using a negated character class, match 0 more of any char that is not) 
\) $ match literal (
  • r ist für Roh-String in Python verwendet.
+1

Vielen Dank für Ihre schnelle Antwort! – kgb26

+1

Sie sollten wahrscheinlich auch den Vorteil der 'r' ... '' Saite erwähnen. (Obwohl es in diesem Beispiel keinen Unterschied macht.) – chepner