Подтвердить что ты не робот

Точное совпадение строк

У меня есть строка, в которой слово "LOCAL" встречается много раз. Я использовал функцию find() для поиска этого слова, но он также возвращает другое слово "Locally". Как я могу точно совместить слово "local"?

4b9b3361

Ответ 1

Для такого рода вещей регулярные выражения очень полезны:

import re

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

\ b означает основную границу слова. Может быть пробелом, пунктуацией и т.д.

Изменить комментарий:

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

Вы можете удалить флаги = re.IGNORECASE, если вы не хотите игнорировать этот случай, очевидно.

Ответ 2

Ниже вы можете использовать простую функцию.

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 ":("

Ответ 3

Вы можете использовать регулярные выражения для ограничения совпадений на границе слова, например:

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']

Ответ 4

Ищите 'local'? Обратите внимание, что Python чувствителен к регистру.

Ответ 5

Сделайте поиск регулярных выражений для \blocal\b

\ b - это "граница слов", которая может включать начало строк, концы строк, пунктуацию и т.д.

Вы также можете искать регистр без учета.

Ответ 6

line1 = "This guy is local"
line2 = "He lives locally"

if "local" in line1.split():
    print "Local in line1"
if "local" in line2.split():
    print "Local in line2"

Только строка1 будет соответствовать.