我目前很难在 txt 文档上分离单词 将正则表达式放入列表中,我尝试了“.split”和“.readlines”我的文档 由诸如“HelloPleaseHelpMeUnderstand”之类的词组成 大写但没有间隔,所以我不知道如何将它们放入列表中。 这是我目前拥有的,但它只返回一个单词。
import re
file1 = open("file.txt","r")
strData = file1.readline()
listWords = re.findall(r"[A-Za-z]+", strData)
print(listWords)
我这样做的一个目标是在列表的元素中搜索另一个词,但我只是想知道如何列出它们以便我可以继续我的工作。
如果有人能指导我找到解决方案,我将不胜感激。
请您参考如下方法:
基于环视的常规正则表达式在粘合字母单词之间插入空格是
import re
text = "HelloPleaseHelpMeUnderstand"
print( re.sub(r"(?<=[A-Z])(?=[A-Z][a-z])|(?<=[a-z])(?=[A-Z])", " ", text) )
# => Hello Please Help Me Understand
参见 regex demo .需要注意调整以考虑数字或单字母大写单词,如 I、A 等。
关于您当前的代码,您需要确保将整个文件读入一个变量(使用 file1.read(),您正在使用 readline() 读取第一行) 并使用 [A-Z]+[a-z]* 正则表达式来匹配按照您显示的方式粘贴的所有单词:
import re
with open("file.txt","r") as file1:
strData = file1.read()
listWords = re.findall(r"[A-Z]+[a-z]*", strData)
print(listWords)
参见 Python demo
图案细节
[A-Z]+- 一个或多个大写字母[a-z]*- 零个或多个小写字母。
