2016-10-30 4 views
0

ある変数があります:Pythonの正規表現とメタキャラクタ

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

私は「S()」が含まれる部分を見つけようとしていますが。

私が使用してみました:

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

をしかし、(を含んで文字を検索することができないようです)

それを見つけるとpythonでそれを印刷する方法はありますか?

+1

正規表現の構文に慣れることをお勧めします。https://docs.python.org/2/library/re.html#regular-expression-syntax(たとえば、 '*' doesnおそらくあなたが思っていることはしないでください)。 – NPE

+0

なぜ彼はダウン投票していますか? – pylang

答えて

3

正規表現が問題です。

あなたは使用することができます。

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

正規表現の分裂:

s  # match letter s 
\( # match literal (
[^)]* # Using a negated character class, match 0 more of any char that is not) 
\) $ match literal (
  • rは、Pythonで、生の文字列に使用されます。
+1

ご返信ありがとうございます! – kgb26

+1

おそらく 'r '...'文字列の利点についても言及するべきです。 (この例では実際には違いはありませんが) – chepner