从python脚本执行时无法理解pcregrep的返回码

时间:2013-09-18 08:37:08

标签: python regex pcre

我正在尝试使用pcregrep命令解析一组正则表达式。该命令将从python执行,输出格式化并存储在python数据结构中。我能够执行除下面的一个

之外的所有正则表达式
"^.{159}-{51}\s*\n.{159}Attempting to start (?:ORM(R)?|CPS)  channel\s*\n.*in\s*\n.*init_n_config\s*\n.*H_ICM_C_MCC_CHANNEL_MANAGER\.C\s*\n.*at  line\s*\n.*\d+\s*$"

我正在打印错误代码以及我从python执行pcregrep命令得到的消息。

我收到的错误代码是256并且是空消息 我正在使用python的命令实用程序。我正在打印cmd_output [0](用于返回代码)和command_output [1](用于错误消息) 我尝试从命令行执行此操作,它完美地工作。它打印出与上述正则表达式匹配的所有匹配行。

这里有什么我想念的。只有上面的正则表达式给出了错误。其余的表达工作绝对正常。

1 个答案:

答案 0 :(得分:0)

返回代码256(当通过各种类型的Python子进程调用方法使用它时)可能意味着子进程正常退出exitcode 1,对于grep意味着它没有找到任何东西。所以这可能不是错误,而是找不到所需的正则表达式。

现在,regexp包含几个特殊字符,如星号和反斜杠。有很多方法可以用错误的方式将它们交给它们,这样它们就会被解释,从而在这个过程中被打破。我建议你看看这几点。

如果你告诉我们更多关于你如何使用这个正则表达式模式的话会有所帮助,i。即请发布使用它的代码以及结果等等。