字符串完全匹配

2024-06-16 09:12:02 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个字符串,其中“LOCAL”这个词出现了很多次。我使用find()函数搜索这个单词,但它也返回另一个单词“Locally”。我怎样才能准确地匹配“本地”这个词呢?


Tags: 函数字符串localfind单词locally
3条回答

下面你可以使用简单的函数。

def find_word(text, search):

   result = re.findall('\\b'+search+'\\b', text, flags=re.IGNORECASE)
   if len(result)>0:
      return True
   else:
      return False

使用:

text = "Hello, LOCAL locally local test local."
search = "local"
if find_word(text, search):
  print "i Got it..."
else:
  print ":("

您可以使用正则表达式来约束匹配项在单词边界处发生,如下所示:

import re
p = re.compile(r'\blocal\b')
p.search("locally") # no match
p.search("local") # match
p.findall("rty local local k") # returns ['local', 'local']

对于这种情况,regexp非常有用:

import re

print(re.findall('\\blocal\\b', "Hello, locally local test local."))
// ['local', 'local']

基本上是指单词边界。可以是空格、标点符号等

编辑以供评论:

print(re.sub('\\blocal\\b', '*****', "Hello, LOCAL locally local test local.", flags=re.IGNORECASE))
// Hello, ***** locally ***** test *****.

显然,如果不想忽略该情况,可以删除flags=re.ignore case。

相关问题 更多 >