gpt4 book ai didi

Python Regex 从调制解调器 AT 命令中提取响应

转载 作者:太空宇宙 更新时间:2023-11-04 06:20:26 24 4
gpt4 key购买 nike

当向调制解调器发送命令时,通常会发送命令(例如 AT ),然后是 \r。 .然后听调制解调器以查看命令的结果,其中重复该命令本身。所以来自调制解调器的典型通信反馈看起来像

AT\r\rOK\r\n

如果出现错误,它看起来像

AT\r\rERROR\r\n

但一般来说,根据实际的 AT 命令,返回值可能是除 OK 之外的任何值和 ERROR .

我想提取这个响应,即一个返回 OK 的正则表达式, ERROR或任何调制解调器回复。条件如下:

  • 我想验证字符串中的原始命令,即ATX\r\rOK\r\n当命令只是 AT 时不应该匹配.
  • 我根本不关心有多少个空白字符,我唯一期望的是有一个 \n在最后。所以AT\rOK\nAT\nOK\r\r\n也应该匹配,但不是 AT\nOK\r\r .
  • 最后,我不关心左侧的额外内容,只要它们通过空白字符与 AT 命令分隔即可。所以OK\rAT\rOK\n应该匹配(即 OK 的右侧出现),但是 XAT\rOK\r\n不应该匹配。

是否可以使用一个正则表达式来提取调制解调器响应,或者我是否需要进行多个正则表达式搜索?要查看整个事情是否完全匹配,我可能已经找到了一个表达式:

r = re.compile("\s+AT\s+\w+\s*\\n$")

但是如何提取\w+的内容呢?由什么组成?

最佳答案

你把()在您要提取的部分周围,因此您的正则表达式显示为 r"(?<!\S)AT\s+(\w+)\s*\n .然后你将一组与比赛一起,你可以提取例如与 group :

r.search("yourText").group(1)

关于Python Regex 从调制解调器 AT 命令中提取响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12749065/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com