查找字符串中单词的位置

时间:2017-05-22 09:20:23

标签: python regex python-2.7 search

我的任务

我试图找到使用正则表达式出现在字符串中的单词的位置

代码

import re

# A random string

mystr = "there not what is jake can do for you ask what you play do for spare jake".upper() 

match = re.search(r"[^a-zA-Z](jake)[^a-zA-Z]", mystr)

print match.start(1)

输出

18

预期输出

我希望我的输出包含字符串jake的位置:

5, 17

编辑: 为了澄清,我试图找出单词的位置。我相信我所做的就是找到了索引,我不确定如何让它按预期工作

2 个答案:

答案 0 :(得分:4)

要在输入字符串中获取搜索字符串jake的“序数”位置,请使用以下方法:

mystr = "there not what is jake can do for you ask what you play do for spare jake"
search_str = 'jake'

result = [i+1 for i,w in enumerate(mystr.split()) if w.lower() == search_str]
print(result)  

输出:

[5, 17]
  • enumerate(mystr.split()) - 获取枚举对象(具有位置/索引的项目对)

  • w.lower() == search_str - 如果一个单词等于搜索字符串

答案 1 :(得分:2)

尝试这种方式:

mystr = "there not what is jake can do for you ask what you play do for spare jake"
result = [index+1 for index,word in enumerate(mystr.split()) if word=='jake']
result

输出:

[5, 17]