# 读取txt文件
z = input("请输入文件路径:")
# 保留标点符号并竖排
a = input("是否保留标点符号?")
# 请输入你要检索的文字,以空格隔开
c = input("请输入你要检索的文字,以空格隔开")
# 检索"好"和"?" print 打印
'''
好好好???
怎么好上的?
有什么好处吗?
这么攻略他好吗?
'''
#!/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")
按行读取,正则匹配?
这么简单的规则连正则都不需要
先按行读出来,然后判断'好' in line and '?' in line就行了