我需要解析这个输出: -
S1-link-id eNB-IP-Address MME-IP-Address Facing State ------------------------------------------------------------------- 303 141.1.1.2 191.1.1.2 eNodeB Established 301 141.1.1.2 191.1.1.2 MME Established 306 141.1.1.3 191.1.1.2 eNodeB Established 304 141.1.1.3 191.1.1.2 MME Established 309 141.1.1.4 191.1.1.2 eNodeB Established 307 141.1.1.4 191.1.1.2 MME Established
我想为单个id(第一列)获取多个值.对于"303" - 我需要enb,mme ip地址,面向和状态值,对于其他ID也是如此.
一个所需输出的正则表达式: -
\s*(?P<id>\d+)\s+(?P<enb_adr>\d+\.\d+\.\d+\.\d+)\s+(?P<mme_adr>\d+\.\d+\.\d+\.\d+)\s+(?P<facing>\w+)\s+(?P<state>\w+)\s*
Run Code Online (Sandbox Code Playgroud)
在此之后坚持如何继续以获得整个输出的期望值.
看起来你的正则表达式没问题,所以你需要做的就是使用re.findall():
import re
print re.findall(r'\s*(?P<id>\d+)\s+(?P<enb_adr>\d+\.\d+\.\d+\.\d+)\s+(?P<mme_adr>\d+\.\d+\.\d+\.\d+)\s+(?P<facing>\w+)\s+(?P<state>\w+)\s*', the_text_above)
Run Code Online (Sandbox Code Playgroud)
返回:
[('303','141.1.1.2','191.1.1.2','eNodeB','Established'),('301','141.1.1.2','191.1.1.2','MME','Established '),('306','141.1.1.3','191.1.1.2','eNodeB','已建立'),('304','141.1.1.3','191.1.1.2','MME', 'Established'),('309','141.1.1.4','191.1.1.2','eNodeB','Established'),('307','141.1.1.4','191.1.1.2','MME ','已建立')]
| 归档时间: |
|
| 查看次数: |
77 次 |
| 最近记录: |