回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>当被问及网络信息时,我试图匹配调制解调器给出的输出,结果如下:</p>
<pre><code>Network survey started...
For BCCH-Carrier:
arfcn: 15,bsic: 4,dBm: -68
For non BCCH-Carrier:
arfcn: 10,dBm: -72
arfcn: 6,dBm: -78
arfcn: 11,dBm: -81
arfcn: 14,dBm: -83
arfcn: 16,dBm: -83
</code></pre>
<p>所以我有两种表达式要匹配,BCCH和non-BCCH。以下代码几乎可以正常工作:</p>
<pre><code>match = re.findall('(?:arfcn: (\d*),dBm: (-\d*))|(?:arfcn: (\d*),bsic: (\d*),dBm: (-\d*))', data)
</code></pre>
<p>但似乎<em>两个</em>表达式都是匹配的,没有找到空白字段:</p>
<pre><code>>>> match
[('', '', '15', '4', '-68'), ('10', '-72', '', '', ''), ('6', '-78', '', '', ''), ('11', '-81', '', '', ''), ('14', '-83', '', '', ''), ('16', '-83', '', '', '')]
</code></pre>
<p>有人能帮忙吗?为什么会有这样的行为?我试过改变表达的顺序,但没有成功。你知道吗</p>
<p>谢谢!你知道吗</p>