zoukankan      html  css  js  c++  java
  • 如何使用 re模块的, spilt.

    例: 这是一组  网卡的信息。 

    1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN
        link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
        link/ether 00:1c:42:a5:57:7a brd ff:ff:ff:ff:ff:ff
    3: virbr0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN
        link/ether 52:54:00:a3:74:29 brd ff:ff:ff:ff:ff:ff
    4: virbr0-nic: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN qlen 500
        link/ether 52:54:00:a3:74:29 brd ff:ff:ff:ff:ff:ff
    1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN
        link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
        inet 127.0.0.1/8 scope host lo
        inet6 ::1/128 scope host
           valid_lft forever preferred_lft forever
    2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
        link/ether 00:1c:42:a5:57:7a brd ff:ff:ff:ff:ff:ff
        inet 10.211.55.4/24 brd 10.211.55.255 scope global eth0
        inet6 fdb2:2c26:f4e4:0:21c:42ff:fea5:577a/64 scope global dynamic
           valid_lft 2591752sec preferred_lft 604552sec
        inet6 fe80::21c:42ff:fea5:577a/64 scope link
           valid_lft forever preferred_lft forever
    3: virbr0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN
        link/ether 52:54:00:a3:74:29 brd ff:ff:ff:ff:ff:ff
        inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0
    4: virbr0-nic: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN qlen 500
        link/ether 52:54:00:a3:74:29 brd ff:ff:ff:ff:ff:ff
    

     我想要将,其中的内容提取出来。

    那么就需要 对 每一组字符串进行解析才可以。

    最好的就是,使用 里面的  1 2 3 4  进行分割。将数据分割成8 个字符串。

    但是单纯的 字符串的  split 方法, 并不能满足要求。  如果使用字符串的 split 方法。 可能就需要多次的去分割, 而且在不知道数据有多少的情况下, 也没法搞。

    所有 使用 re 模块的 compile  和  split  就能很完美的解决这件事。

    看数据能知道,每一组的开头都是 数字。 而且数字之前都是有换行的  。

    所以如果要匹配这些换行怎么做呢?

    re.findall(' d', out)  # [' 2', ' 3', ' 4', ' 1', ' 2', ' 3', ' 4']

    使用这些匹配出来的数据, 再去分割文件的话,就可以了。用的时候只需要:

    li = re.compile('
    ?
    d').split(filestr)
    添加了 ? 万一有 也不会出问题。

    然后就可以循环li 里面的每一条数据。
  • 相关阅读:
    Windows常用命令的使用
    Windows网络命令的相关指令(1)
    HashMap源码解析
    Head First 设计模式【一、设计模式入门】
    软技能-代码之外的生存指南【职业篇】
    记第一个项目结束时的感想
    2019年总结
    深入理解计算机系统【五】-存储器层次结构
    深入理解计算机系统【四】-程序的机器级表示
    深入理解计算机系统【三】
  • 原文地址:https://www.cnblogs.com/chengege/p/10907722.html
Copyright © 2011-2022 走看看