我是python中的新手 我有用txt格式写的简单wordlist
hello, hai, hi, halo
我想要的是,在两个字符串之间获取文本以wordlist中的单词开头,以"结束。" (点)
我试过的代码
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'
>>>
有人可以帮忙吗?
答案 0 :(得分:1)
这里有几个问题。
如果要搜索单词列表中的任何单词,则需要将列表放在带括号的列表中,并用竖线字符分隔。在您的情况下,这是getActivity().getBaseContext();
您可以通过将正则表达式更改为(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)
,因为第一组现在是'hello'。