-1
我有一个从pexpect的session.before
得到的字符串对象。re.search与字节字符串不匹配
从这我试图re.search
使用下面的正则表达式获取设备ID。但它不匹配。
print (str(sess.before))
b'\r\n* daemon not running. starting it now on port 5037 *\r\n* daemon started successfully *\r\n353651\tdevice\r\n\r\n\r\n'
device_id = re.search ('([0-9a-zA-Z]+)[\t ]+device', str(sess.before))
print (device_id)
None
@Wiktor:kinda-sorta。问题主要是'str()'调用是将字节对象转换为字符串的一种非常错误的方式。 –
@MartijnPieters:我只是想知道为什么OP有'b'\ r \ n * ...''而不是''b'\\ r \\ n * ...'“'那么呢?如果你确定至少有两个问题,那么是的,它可以重新打开。 –
@WiktorStribiżew:'print()'调用掩盖了这个问题;实际上'print(bytesobject)'已经使用'str()',所以第一行中的'str()'完全是多余的。 'str(sess.before)'* does * return''b'\\ r \\ n * ...'“',但是当你然后*打印*那...... –