代码改变社会 2022-11-29 02:29 采纳率: 100%
浏览 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日

悬赏问题

  • ¥20 qt中connect两个signal
  • ¥20 pix2pixHD运行测试命令时出现数据类型错误无法反向传播的问题
  • ¥15 python处理Excel符合条件的行自动填写数据分类
  • ¥15 汇编hook举例并讲解(通俗易懂,学习用)
  • ¥20 用c++语言模拟键盘电子琴设计
  • ¥15 STM32cubemx生成keil工程,有问题与正常的情况不同,求解!
  • ¥15 如何自动点击银行app的安全键盘,实现密码自动输入
  • ¥15 关于四边形重叠的问题
  • ¥15 用verilog语言设计一个简易的八音符电子琴,可通过按键输入来控制音响。演奏时可以选择是手演奏(由键盘输入)或自动演奏已存入的乐曲。能够自动演奏多首乐曲,且每首乐曲可重复演奏
  • ¥15 sap gui脚本每次到导出Excel的时候就停住不动。不会另存为。