2013-03-04 88 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