赵灵越 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 这种微信登录授权 谁可以做啊
  • ¥15 请问我该如何添加自己的数据去运行蚁群算法代码
  • ¥20 用HslCommunication 连接欧姆龙 plc有时会连接失败。报异常为“未知错误”
  • ¥15 网络设备配置与管理这个该怎么弄
  • ¥20 机器学习能否像多层线性模型一样处理嵌套数据
  • ¥20 西门子S7-Graph,S7-300,梯形图
  • ¥50 用易语言http 访问不了网页
  • ¥50 safari浏览器fetch提交数据后数据丢失问题
  • ¥15 matlab不知道怎么改,求解答!!
  • ¥15 永磁直线电机的电流环pi调不出来