【问题标题】:Finding position of utf8 substring in string in python [duplicate]在python中查找字符串中utf8子字符串的位置[重复]
【发布时间】:2015-06-26 19:39:07
【问题描述】:

我正在尝试在字符串中查找 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 而不是因为我想按单词匹配。

【问题讨论】:

  • 您没有 UTF-8 字符串。你有 Unicode 字符串;这两个概念是相关的,但非常不一样。一个是编码字节,另一个是文本。
  • 编写自己的函数。
  • str 是 Python 类型,请务必使用其他变量名。
  • FWIW,不使用正则表达式的简单方法是在目标字符串和搜索字符串中都附加一个空格。 OTOH,与正则表达式方法不同,它不处理标点符号。

标签: python string unicode


【解决方案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"

【讨论】:

    猜你喜欢
    • 2014-02-27
    • 2012-05-21
    • 2014-05-09
    • 1970-01-01
    • 2020-02-24
    • 2017-04-25
    • 2012-08-03
    • 2014-02-04
    • 2013-09-27
    相关资源
    最近更新 更多