我目前很难用regex将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演示。注意调整将是必要考虑数字,或大写单词喜欢的单个字母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演示
图案细节
[A-Z]+
-一个或多个大写字母[a-z]*
-零个或多个小写字母。本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句