python在wordlist中的2个字符串之间获取文本

时间:2015-06-02 01:23:53

标签: python

我是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'
>>> 

有人可以帮忙吗?

1 个答案:

答案 0 :(得分:1)

这里有几个问题。

  1. 如果要搜索单词列表中的任何单词,则需要将列表放在带括号的列表中,并用竖线字符分隔。在您的情况下,这是getActivity().getBaseContext();您可以通过将正则表达式更改为(hello|hai|hi|halo)

  2. 来实现
  3. 您正在尝试进行不区分大小写的搜索,因此您必须像这样传递标记re.compile('(%s)(.*?)%s' % (START.read().replace(', ','|'),END)

    IGNORECASE

  4. 请注意,在此更改之后,您需要更改为m = re.compile('(%s)(.*?)%s' % (START.read().replace(', ','|'),END), flags = re.IGNORECASE),因为第一组现在是'hello'。