在python中使用正则表达式将文本文件拆分为单词

时间:2018-09-26 05:29:30

标签: python regex

python的新手!!!我得到了一个文本文件https://en.wikipedia.org/wiki/Character_mask,我需要将文件拆分为单个单词((一个以上的字母用其他任意一个字符分隔),但是我尝试使用regex,但似乎无法正确无误地将其拆分。这是我到目前为止的代码,谁能帮助我修复此正则表达式

import re 
file = open("charactermask.txt", "r")
text = file.read()
message = print(re.split(',.-\d\c\s',text))
print (message)
file.close()

3 个答案:

答案 0 :(得分:2)

您可以将re.findall与以下正则表达式模式一起使用,以查找所有长度超过1个字符的单词。

更改:

message = print(re.split(',.-\d\c\s',text))

收件人:

message = re.findall(r'[A-Za-z]{2,}', text))

答案 1 :(得分:1)

如果您正在寻找文本字符串中单词的简单标记,则可以使用 .split就像魅力一样! 例如

mystring = "My favorite color is blue"
mystring.split()
['My', 'favorite', 'color', 'is', 'blue']

答案 2 :(得分:1)

如果您只是想分割文本,那么SmashGuy的答案应该可以完成您的工作。使用正则表达式似乎有点过分。另外,您的正则表达式模式似乎并没有达到您所描述的意图。您可能需要先测试模式,直到正确为止,然后再将其插入python脚本。尝试https://regex101.com/

这是您的模式现在所做的:

, matches the character , literally (case sensitive)
. matches any character (except for line terminators)
- matches the character - literally (case sensitive)
\d matches a digit (equal to [0-9])
\c matches the character c literally (case sensitive)
\s matches any whitespace character (equal to [\r\n\t\f\v ])

我不确定您是否真的想使用[,​​.-]这些字符前缀之一,并且您对\ c令牌的印象也可能不正确,因为它对python的风格没有任何特殊作用正则表达式。