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 安卓adb backup备份应用数据失败
  • ¥15 eclipse运行项目时遇到的问题
  • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站
  • ¥50 成都蓉城足球俱乐部小程序抢票
  • ¥15 yolov7训练自己的数据集
  • ¥15 esp8266与51单片机连接问题(标签-单片机|关键词-串口)(相关搜索:51单片机|单片机|测试代码)
  • ¥15 电力市场出清matlab yalmip kkt 双层优化问题
  • ¥30 ros小车路径规划实现不了,如何解决?(操作系统-ubuntu)