我有一个大型文档,其中包含一个特定模式中出现的项目:"TEXT I return ",“(逗号结束我想返回的文本)”,"more text I不需要“。“我需要的文本”(需要紧接句号后面的文本) ",“(逗号结束文本)。诸若此类。
我希望编写一个脚本,它将通过文档并取出(我需要的文本)。
我没试过多少。我试过玩re.compile,但我大多是初学者。
文件例子:苹果很有趣,橘子更好。橘子很有趣,香蕉更好。香蕉很奇怪,香蕉有点奇怪。
我想回去:苹果很好玩,橘子很好玩,香蕉很奇怪
发布于 2019-10-17 14:58:54
提取','之前并在begin of text(^)或'.'前面的文本
import re
text = """APPLES ARE FUN, oranges are better. ORANGES ARE FUN, bananas are better. BANANAS ARE WEIRD, bananas are a little weird"""
print(re.findall('(?:^|\.\s+)([\w\s]+)(?=,)', text))
# ['APPLES ARE FUN', 'ORANGES ARE FUN', 'BANANAS ARE WEIRD']发布于 2019-10-17 14:30:36
如果您只想要大写的ASCII字母,则如下所示:
[A-Z]+示例:
http://regexr.com/4n1s1
import re
pattern = re.compile('[A-Z]+')
matches = pattern.findall('APPLES ARE FUN, oranges are better. ORANGES ARE FUN, bananas are better')
print(matches)
# ['APPLES', 'ARE', 'FUN', 'ORANGES', 'ARE', 'FUN']发布于 2019-10-17 14:23:49
根据您的模式,您可以使用以下内容:
from re import findall as regexSearch
with open("./myFileName.txt", "r") as myFile:
content = myFile.read()
pattern = r"[A-Z ]{2,}"
matches = regexSearch(pattern, content)
for match in matches:
print(match)测试模式的一个好工具是regex101.com。它还解释了它发现了什么以及为什么它找到了它。
https://stackoverflow.com/questions/58434579
复制相似问题