如何从字符串中的字符串中找到字节位置,而不是字符位置?

时间:2017-01-26 07:55:50

标签: python string python-3.x position

我的texteditor(vim)可以给出字符串中字符串的位置,但是计算字节数,而不是字符数。

示例:

s="I don't take an apéritif après-ski"

当我搜索单词apéritif时,我的发短信给出了位置:
16,25

Python给出了同一个词的这个位置:
16,24

Vim提供了在编辑器中执行python代码的可能性 在我的一个python脚本中,我做了很多切片 但是如果字符串中有重音符号,我找不到正确的单词 有没有办法在python中解决这个问题? 我可以在python中找到字符串中字符串的字节位置吗?

1 个答案:

答案 0 :(得分:2)

诚然,这是一个天真的解决方案。 您可以将文本和单词编码为字节,然后对带编码的单词作为参数的编码文本运行find()操作。

def f(text,word):
    en_text=bytes(text,encoding="utf-8")
    en_word=bytes(word,encoding="utf-8")
    start = en_text.find(en_word)
    return (start,start+len(en_word))

运行时:

f("I don't take an apéritif après-ski","apéritif")

返回     (16,25)