【问题标题】:Try Parsing Linux Version尝试解析 Linux 版本
【发布时间】:2013-02-18 02:02:41
【问题描述】:

我正在尝试使用以下正则表达式解析 linux 版本

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

这是结果

回溯(最近一次通话最后一次):
文件“”,第 1 行,在模块中
编译中的文件“/usr/lib/python2.6/re.py”,第 190 行
返回 _compile(模式,标志)
_compile
中的文件“/usr/lib/python2.6/re.py”,第 245 行 引发错误,v # 表达式无效
sre_constants.error:括号不平衡

如何解决这个问题?我的正则表达式有问题吗?谢谢

【问题讨论】:

    标签: regex python-2.7 python-2.6


    【解决方案1】:
    ^Linux version ([0-9a-z\.\-]*) ([^@]*@[^)]*).*
    

    您没有逃脱第一组方括号中的破折号。破折号有一个特殊的值(它表示一组值,也就是 0 到 9,A 到 Z。因此它必须被转义。

    您还转义了一个圆括号“(”,我假设您不是故意的,因为这会导致括号不平衡。如果您确实想要,也请转义第二个括号(见下文)。

    替代方案:

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

    【讨论】:

    • 这个正则表达式仍然有问题。括号不平衡。
    猜你喜欢
    • 2018-04-26
    • 1970-01-01
    • 2011-01-11
    • 2020-04-15
    • 2014-06-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-25
    相关资源
    最近更新 更多