关于python:查找字符串中单词的位置

Finding the position of words in a string

本问题已经有最佳答案,请猛点这里访问。

我的任务

我正在尝试使用regex查找字符串中出现的单词的位置

代码

1
2
3
4
5
6
7
8
9
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)

产量

1
18

预期产量

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

1
5, 17

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


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

1
2
3
4
5
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)

输出:

1
[5, 17]
  • enumerate(mystr.split())—获取枚举对象(一对项目及其位置/索引)

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


尝试这种方式:

1
2
3
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

输出:

1
[5, 17]