2013-03-04 96 views
0

我試圖解析Linux版本具有以下的正則表達式嘗試解析Linux版本

^Linux version ([0-9a-z.-]*) \([^@]*@[^)]*).* 

這是結果

回溯(最近通話最後一個):
文件「」,1號線,在模塊
文件 「/usr/lib/python2.6/re.py」,線190,在編譯
返回_compile(圖案,標誌)
文件「/usr/lib/python2.6/re.py 「,第245行,在_compile
引發錯誤,V#無效表達
sre_constants.error:不平衡括號

如何解決這個?是有什麼錯我的正則表達式?謝謝

回答

1
^Linux version ([0-9a-z\.\-]*) ([^@]*@[^)]*).* 

你沒有逃過第一組方括號中的破折號。一個破折號有一個特殊的值(它表示一組數值,又名0到9,A到Z.因此它必須被轉義。)

你也逃脫了一個圓括號「(」,我認爲你不是故意的,因爲這將導致不平衡的括號如果你確實想要,逃跑的第二支架以及(見下文)

替代:。。。

^Linux version ([0-9a-z\.\-]*) \([^@]*@[^)]*\).* 
+0

這正則表達式將仍然是有問題的paranthesis不平衡 – jitendra 2013-03-04 02:55:20

+0

@ jitendra謝謝,修復。 – 2013-03-04 02:57:48