我是新来的正则表达式,想知道如何当列的内容并不总是相似正则表达式在Python中多
O/P画面中的链接,更好地理解
取第3列的值SW1-TB100#SH MOD
国防部端口的模块型模型状态
1 34 1/10/40G IPS,2/4/8/10/16G FC模块DS-X9334-K9 OK
2 48 1/10 Gbps以太网模块DS-X9848-480K9 OK
5 0 Supervisor模块-3 DS-X97-SF1-K9活动*
我是新来的正则表达式,想知道如何当列的内容并不总是相似正则表达式在Python中多
O/P画面中的链接,更好地理解
取第3列的值SW1-TB100#SH MOD
国防部端口的模块型模型状态
1 34 1/10/40G IPS,2/4/8/10/16G FC模块DS-X9334-K9 OK
2 48 1/10 Gbps以太网模块DS-X9848-480K9 OK
5 0 Supervisor模块-3 DS-X97-SF1-K9活动*
您可以发布表格的txt格式。
re.findall("(\d{1,2}?) +(\d{1,2}?) +(.*?) +(.+?\s\w+\w+?) +(.*\-?) +(\w+)", "your_input_file")
以上将匹配您的第一个2行:
==========================================================
1 34 1/10/40G IPS,2/4/8/10/16G FC Module DS-X9334-K9 ok
2 48 1/10 Gbps Ethernet Module DS-X9848-480K9 ok
==========================================================
您也可以参考以下链接
相反的正则表达式,你可以尝试用简单的下面字符串拆分操作。
line = "1 34 1/10/40G IPS,2/4/8/10/16G FC Module DS-X9334-K9 ok"
print " ".join(line.split()[2:-2])
你可以把它放在一个循环中对所有行重复它。
编辑1:
您可以使用下面的方法用星号删除问题无论是。再次,如果日志中有其他特殊情况,您可能需要调整它。
print " ".join(str2.replace("*","").split()[2:-2])
print " ".join(str2.split("DS")[0].split()[2:])
感谢您的建议。但第三列值有空间。正则表达式会打破这个不同的值 – Aftab
>>> a =“1 34 1/10/40G IPS,2/4/8/10/16G FC模块DS-X9334-K9 ok” >>> re.findall “(\ d {1,2}?)+(\ d {1,2}?)+(。*?)+(。+?\ s \ w + \ w +?)+(。* \ - ? ('w'),a) [('1','34','1/10/40G','IPS,2/4/8/10/16G FC','模块DS-X9334-K9' ,'ok')] >>> – Aftab