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 |
预期产量
我希望我的输出包含字符串
1 | 5, 17 |
编辑:为了澄清这一点,我正在试图确定单词的位置。我相信我所做的就是找到了索引,我不确定如何让它按我的预期工作。
要获取输入字符串中搜索字符串
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] |