0

次の正規表現を使用してLinuxバージョンを解析しようとしています

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

これは結果です

トレースバック(最後の最後の呼び出し):
ファイル ""、1行目、モジュール
ファイル "/usr/lib/python2.6/re.py"、190行目、コンパイル
時return _compile(pattern、flags)
ファイル"/usr/lib/python2.6/re.py"、245行目、_compileで
エラーが発生、v#無効な式
sre_constants.error:不均衡な括弧

これを解決する方法は?、私の正規表現に何か問題がありますか?ありがとう

4

1 に答える 1

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

最初の角かっこでダッシュをエスケープしませんでした。ダッシュには特別な値があります(0から9、AからZとも呼ばれる値のセットを示します。したがって、ダッシュはエスケープする必要があります。

また、角かっこ "("をエスケープしました。これは、角かっこが不均衡になるため、意図していなかったと思います。必要に応じて、2番目の角かっこもエスケープします(以下を参照)。

別:

^Linux version ([0-9a-z\.\-]*) \([^@]*@[^)]*\).*
于 2013-03-04T02:54:06.167 に答える