baidu_33463617 2015-12-24 01:49 采纳率: 0%
浏览 7193

python 正则匹配到特定字符串,并删除字符串所在的行,并且返回所在行的第一个数字ID

如利用正则匹配到“受到xx影响”,则删除字符串所在行,并返回2877,2881。
a.txt内容如下:
2877 a3 1-1 9:16,部分地区受到雾霾影响出行不便。
2878 a2 1-1 9:42,床前明月光,疑是地上霜。
2880 a2 1-1 10:09,举头望明月,低头思故乡。
2881 a3 1-1 9:16,受到事故影响出行不便。

希望得到的结果是:
“2877”匹配到:“受到雾霾影响”
“2881”匹配到:“受到事故影响”

写入b.txt内容为:、
2878 a2 1-1 9:42,床前明月光,疑是地上霜。
2880 a2 1-1 10:09,举头望明月,低头思故乡。

  • 写回答

2条回答 默认 最新

  • song_cai_csdn 2015-12-24 03:23
    关注
    # _*_ coding:utf-8 _*_
    def get_math_line(source, keyword):
        # re chinese
        # 源文件编码需要指定
        source = source.decode('gb2312')
        pattern = '((\d)*).*' + keyword
        pattern = pattern.decode('utf-8')
        import re
        prog = re.compile(pattern)
        result = prog.search(source)
        return result.group(1) if result else None
    
    with open('source.txt', 'rb') as src_file:
        with open('dest.txt', 'w') as dst_file:
            for line in src_file.readlines():
                val = get_math_line(line, '受到雾霾影响')
                if val:
                    print val
                else:
                    dst_file.write(line.strip('\n'))
    
    
    评论

报告相同问题?

悬赏问题

  • ¥15 HFSS 中的 H 场图与 MATLAB 中绘制的 B1 场 部分对应不上
  • ¥15 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?