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()
答案 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的风格没有任何特殊作用正则表达式。