在 python 中的字符串中查找 utf8 子字符串的位置

Finding position of utf8 substring in string in python

我正在尝试在字符串中查找 utf-8 子字符串。

这是我的代码:

str = u'haha i am going home'
substr1 = u'haha'
substr2 = u'ha'

如果我运行

str.find(substr1) #returns 0 
str.find(substr2) #returns 0 

我愿意

str.find(substr2) to return -1 而不是因为我想按单词匹配。

使用正则表达式

import re

str = u'haha i am going home'
substr1 = u'haha'
substr2 = u'ha'

match = re.search(r'\b%s\b' % substr1 ,str)

if match:
    print "found substring 1"

match = re.search(r'\b%s\b' % substr2 ,str)

if match:
    print "found substring 2"