赵灵越 2022-11-29 02:29 采纳率: 99.3%
浏览 13
已结题

如何读取txt,从全文中检索包含"好"和"?"的两字,并竖排?

# 读取txt文件
z = input("请输入文件路径:")

# 保留标点符号并竖排
a = input("是否保留标点符号?")

# 请输入你要检索的文字,以空格隔开

c = input("请输入你要检索的文字,以空格隔开")

# 检索"好"和"?" print 打印

'''
好好好???
怎么好上的?
有什么好处吗?
这么攻略他好吗?
 '''
  • 写回答

3条回答 默认 最新

  • 梦幻精灵_cq 2022-11-29 10:38
    关注

    对您有帮助,请点击我的回答左下角
    “采纳该答案”

      用正则,麻烦一点,但有“普适”性。

    文本

    img


    #!/usr/bin/nve python
    # coding: utf-8
    
    import re
    
    # 读取txt文件
    filename = input("\n输入文件路径&文件名:").strip()
    #filename = '/sdcard/Documents/test.txt'
    
    with open(filename) as f:
        text = f.read()
    
    # 保留标点符号并竖排
    flag = input("\n是否保留标点符号?(N/n)").strip()
    
    # 请输入你要检索的文字,以空格隔开
    s = input("\n输入检索的字符(如“好 ?”):").split()
    s = '\w*'.join(s)
    find_char = f"\w*{s}+\w*"
    
    # 检索"好"和"?" print 打印
    
    if flag in ('n', 'N'):
        result = '\n'.join(map(lambda x: re.sub('\W', '', x), re.findall(find_char, text)))
    else:
        result = '\n'.join(re.findall(find_char, text))
    
    print(f"\n{' re检索字符串 ':~^45}")
    print(f"\nre匹配表达式:{find_char}\n{'~'*50}\n输出:\n\n{result}\n\n{'':~^50}\n")
    

    img

    img

    img

    img


    对您有帮助,请点击左边
    “采纳该答案”

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 12月7日
  • 已采纳回答 11月29日
  • 创建了问题 11月29日

悬赏问题

  • ¥15 关于arduino编程toCharArray()函数的使用
  • ¥100 vc++混合CEF采用CLR方式编译报错
  • ¥15 coze 的插件输入飞书多维表格 app_token 后一直显示错误,如何解决?
  • ¥15 vite+vue3+plyr播放本地public文件夹下视频无法加载
  • ¥15 c#逐行读取txt文本,但是每一行里面数据之间空格数量不同
  • ¥50 如何openEuler 22.03上安装配置drbd
  • ¥20 ING91680C BLE5.3 芯片怎么实现串口收发数据
  • ¥15 无线连接树莓派,无法执行update,如何解决?(相关搜索:软件下载)
  • ¥15 Windows11, backspace, enter, space键失灵
  • ¥15 cfx离心泵非稳态计算