我要使用此列表关键字:
keywords = ['a', 'about', 'advance', 'advanced', 'affect', 'after', 'ameliorate', 'among', 'and', 'any', 'apply', 'are', 'as', 'at', 'be', 'been', 'better', 'fix', 'fixed', 'following', 'for', 'form', 'from', 'from a', 'further', 'get', 'got', 'have', 'having', 'help', 'hike', 'hold', 'i', 'impact', 'improve', 'in', 'why', 'will', 'with', 'work with', 'would', 'you', 'your', 'of',]
使用如下的简单句子:
'risk to healthy and fitness'
'risk of healthy and fitness'
我的代码是:
keywords = keywords
def Searchy():
name = 'risk to healthy and fitness'
name33 = ['exercise','fit','fitness','cardio',]#standard words
regex1 = re.compile(r'\b(%s+.])\b'%'|'.join(name33))
regex2 = re.compile(r'\b(%s+.)\b'%'|'.join(keywords))
h = [m.start()for m in re.finditer (regex1one,name)]
name55 = [name[h[0]:]][0]
print name55
我想过滤掉大部分混乱或单词,只是从第一个关键字开始获取字符串,结果如下:
'to healthy and fitness'
如果我的第一个关键字是'of',我会得到一个正确的字符串,例如:
'of healthy and fitness'
如果我的第一个关键字是使用的任何其他单词而不是'of',我会改为:
'healthy and fitness'
我希望使用所有关键字的所有结果都相同。我怎么可能做错了怎么办呢?
答案 0 :(得分:2)
我认为您的问题出在regex1中。你调用name33,这是查看该列表/字符串并在其后提供所有内容。当我将其更改为name时,它会提供正确的输出。
def Searchy():
keywords = ['a', 'about', 'advance', 'advanced', 'affect', 'after', 'ameliorate', 'among', 'and', 'any', 'apply', 'are', 'as', 'at', 'be', 'been', 'better', 'fix', 'fixed', 'following', 'for', 'form', 'from', 'from a', 'further', 'get', 'got', 'have', 'having', 'help', 'hike', 'hold', 'i', 'impact', 'improve', 'in', 'why', 'will', 'with', 'work with', 'would', 'you', 'your', 'of',]
name = 'risk to healthy and fitness'
name33 = ['exercise','fit','fitness','cardio',]#standard words
regex1 = re.compile(r'\b(%s+.])\b'%'|'.join(name))
regex2 = re.compile(r'\b(%s+.)\b'%'|'.join(keywords))
h = [m.start()for m in re.finditer (regex1,name)]
name55 = [name[h[0]:]][0]
print name55
Searchy()
另外,你在h语句中有regex1one。我把它改成了regex1
答案 1 :(得分:0)
您的代码与您编写的代码完全相同:
如果我的第一个关键字是'of',我会得到一个正确的字符串
是的,因为'of'确实在您的关键字列表中。
如果我的第一个关键字是使用的任何其他单词而不是'of',我会改为
是的,因为在您提供的示例中,“健康和健康”之前的唯一字词是“冒险”,“转移”和“来自”,其中只有'of'位于您提供的关键字列表中。如果您希望第二个示例获得相同的结果,则需要在关键字列表中添加“to”