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

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

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

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

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

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

'''
好好好???
怎么好上的?
有什么好处吗?
这么攻略他好吗?
 '''

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

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

文本

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


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

按行读取,正则匹配?

这么简单的规则连正则都不需要
先按行读出来,然后判断'好' in line and '?' in line就行了