我是python的新手,我有以txt格式编写的简单单词表
hello, hai, hi, halo
我想要的,要使2个字符串之间的文本以单词列表中的单词开头并以“。”结尾。(点)
我试过的代码
import re
START = open('C:\\Users\\aaaa\\Desktop\\word.txt', 'r')
END = "\."
test = "Hello my name is aaaa."
m=re.compile('%s(.*?)%s' % (START.read(),END),re.S)
print m.search(test).group(1)
它有错误
Traceback (most recent call last):
File "C:\Python27\pyhtonism.py", line 10, in <module>
print m.search(test).group(1)
AttributeError: 'NoneType' object has no attribute 'group'
>>>
有人可以帮忙吗?
这里有几个问题。
如果要在单词列表中搜索任何单词,则需要将该列表放在其自己的带方括号的组中,并用竖线字符分隔。在您的情况下(hello|hai|hi|halo)
,可以通过将正则表达式更改为re.compile('(%s)(.*?)%s' % (START.read().replace(', ','|'),END)
您正在尝试执行不区分大小写的搜索,因此必须IGNORECASE
像这样传递标志:
m = re.compile('(%s)(.*?)%s' % (START.read().replace(', ','|'),END), flags = re.IGNORECASE)
请注意,在此更改之后,您需要更改为,group(2)
因为第一组现在是“ hello”。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句