Проверка символа в строке питон

Проверяем наличие подстроки в строке

В этой статье мы расскажем о четырех способах найти подстроку в строке. У каждого способа есть плюсы и минусы — о них мы также кратко поговорим.

1) Оператор in

Простейший способ проверить наличие подстроки в строке — оператор in . Он используется для проверки наличия элемента в какой-либо структуре данных. Этот оператор возвращает булево значение — True или False . Пример:

fullstring = "pythonist" substring = "python" if substring in fullstring: print "Подстрока найдена!" else: print "Подстрока не найдена!"

Этот оператор — сокращенный вызов метода __contains__ . Он подходит и для проверки наличия элемента в списке.

2) Метод String.index()

Тип string имеет метод index . Он возвращает наименьший индекс, по которому обнаруживается начало подстроки в строке. Если подстрока не найдена, то возбуждается исключение ValueError . Реализовать его можно с помощью блока try-except-else.

fullstring = "pythonist" substring = "python" try: fullstring.index(substring) except ValueError: print "Подстрока не найдена!" else: print "Подстрока найдена!"

Этот метод может особенно пригодиться, если вам нужно найти индекс подстроки, а не просто узнать о ее существовании.

3) Метод String.find()

Тип string имеет еще один метод — find . Он удобнее, чем index , потому что благодаря ему нам не нужно думать об обработке ошибок. Если метод не находит подстроку в строке, он возвращает -1 . В случае успеха он возвращает наименьший индекс, по которому обнаруживается подстрока.

fullstring = "pythonist" substring = "python" if fullstring.find(substring) != -1: print "Подстрока найдена!" else: print "Подстрока не найдена!"

Если вы не хотите обрабатывать ошибки — отдайте предпочтение этому методу, а не index .

4) Регулярные выражения (REGEX)

Регулярные выражения — более гибкий способ нахождения подстрок в строках. В Python есть встроенный модуль, позволяющий работать с регулярными выражениями, — re . Модуль re содержит функцию search , которая позволит вам найти подстроку:

from re import search fullstring = "pythonist" substring = "python" if search(substring, fullstring): print "Подстрока найдена!" else: print "Подстрока не найдена!"

Если вам нужны сложные сопоставления, например, учет регистра — этот метод подойдет вам лучше всего. Но у него есть и недостатки: сложность и скорость работы. То есть, в простеньких задачах его лучше не использовать.

Источник

Читайте также:  Set сложность операций java

Проверить строку на наличие определенного символа в Python

В этом посте мы обсудим, как проверить строку на наличие определенного символа в Python.

1. Использование in оператор

Pythonic, быстрый способ проверить конкретный символ в строке, использует in оператор. Он возвращается True если символ найден в строке и False в противном случае.

The in оператор реализует встроенную функцию __contains__ . Не рекомендуется звонить напрямую.

2. Использование str.find() функция

Другим распространенным подходом к поиску символа в строке является использование str.find() функция. Это возвращает индекс первого вхождения символа в строку и -1, если символ не найден.

3. Использование регулярных выражений

Другой подход заключается в использовании регулярного выражения, как показано ниже. Обратите внимание, что регулярные выражения обходятся дорого, и их следует по возможности избегать.

Это все о проверке строки на наличие определенного символа в Python.

Средний рейтинг 4.59 /5. Подсчет голосов: 37

Голосов пока нет! Будьте первым, кто оценит этот пост.

Сожалеем, что этот пост не оказался для вас полезным!

Расскажите, как мы можем улучшить этот пост?

Спасибо за чтение.

Пожалуйста, используйте наш онлайн-компилятор размещать код в комментариях, используя C, C++, Java, Python, JavaScript, C#, PHP и многие другие популярные языки программирования.

Как мы? Порекомендуйте нас своим друзьям и помогите нам расти. Удачного кодирования 🙂

Этот веб-сайт использует файлы cookie. Используя этот сайт, вы соглашаетесь с использованием файлов cookie, нашей политикой, условиями авторского права и другими условиями. Читайте наши Политика конфиденциальности. Понятно

Источник

Как проверить наличие символа в строке в Python: лучшие способы

Как проверить наличие символа в строке в Python: лучшие способы

В этой статье мы рассмотрим различные способы поиска символов в строке в Python.

Метод find()

Один из самых простых способов поиска символа в строке — использование метода find() . Метод find() возвращает индекс первого вхождения искомого символа в строке. Если символ не найден, метод возвращает -1. Пример использования метода find() :

string = "Hello, World!" index = string.find("o") if index != -1: print(f"The first 'o' is found at index ") else: print("The 'o' is not found in the string") #The first 'o' is found at index 4

Метод count()

Еще один простой способ определить, есть ли символ в строке, — использование метода count() . Метод count() возвращает количество вхождений искомого символа в строке. Если символ не найден, метод возвращает 0. Пример использования метода count() :

string = "Hello, World!" count = string.count("o") if count != 0: print(f"The 'o' occurs times in the string") else: print("The 'o' is not found in the string") #The 'o' occurs 2 times in the string

Оператор in

Python также имеет оператор in , который позволяет проверить, содержится ли символ в строке. Оператор in возвращает True , если символ найден, и False в противном случае. Пример использования оператора in :

string = "Hello, World!" if "o" in string: print("The 'o' is found in the string") else: print("The 'o' is not found in the string") #The 'o' is found in the string

Регулярные выражения

Регулярные выражения являются мощным инструментом для работы с текстовыми данными в Python. Они позволяют выполнять более сложные поисковые запросы, включая поиск шаблонов. Для использования регулярных выражений в Python необходимо использовать модуль re . Пример использования регулярного выражения для поиска символа в строке:

import re string = "Hello, World!" pattern = "o" match = re.search(pattern, string) if match: print(f"The first '' is found at index ") else: print(f"The '' is not found in the string") #The first 'o' is found at index 4

Метод index()

Метод index() возвращает индекс первого вхождения искомого символа в строке. Если символ не найден, метод вызывает исключение ValueError . Пример использования метода index() :

string = "Hello, World!" try: index = string.index("o") print(f"The first 'o' is found at index ") except ValueError: print("The 'o' is not found in the string") #The first 'o' is found at index 4

Метод rfind()

Метод rfind() работает аналогично методу find() , но ищет символ справа налево. Метод rfind() возвращает индекс последнего вхождения искомого символа в строке. Если символ не найден, метод возвращает -1. Пример использования метода rfind() :

string = "Hello, World!" index = string.rfind("o") if index != -1: print(f"The last 'o' is found at index ") else: print("The 'o' is not found in the string") #The last 'o' is found at index 8

Метод rindex()

Метод rindex работает аналогично методу index() , но ищет символ справа налево. Метод rindex() возвращает индекс последнего вхождения искомого символа в строке. Если символ не найден, метод вызывает исключение ValueError . Пример использования метода rindex() :

string = "Hello, World!" try: index = string.rindex("o") print(f"The last 'o' is found at index ") except ValueError: print("The 'o' is not found in the string") #The last 'o' is found at index 8

Вывод

В Python существует несколько способов поиска символов в строке. Методы find() и rfind() возвращают индекс первого и последнего вхождения искомого символа в строке, методы count() и index() возвращают количество и индекс первого вхождения искомого символа в строке соответственно. Оператор in позволяет проверить, содержится ли символ в строке. Регулярные выражения позволяют выполнять более сложные поисковые запросы, включая поиск шаблонов. Выбор метода поиска символов в строке зависит от конкретной задачи, которую необходимо решить.

Читайте также:  Python проверка атрибута класса

Источник

Check if a word is in a string in Python

I’m working with Python, and I’m trying to find out if you can tell if a word is in a string. I have found some information about identifying if the word is in the string — using .find , but is there a way to do an if statement. I would like to have something like the following:

if string.find(word): print("success") 

14 Answers 14

if word in mystring: print('success') 

just as a caution, if you have a string «paratyphoid is bad» and you do a if «typhoid» in «paratyphoid is bad» you will get a true.

How is this the accepted answer. It just checks whether a sequence of characters (not a word) appear in a string

if 'seek' in 'those who seek shall find': print('Success!') 

but keep in mind that this matches a sequence of characters, not necessarily a whole word — for example, ‘word’ in ‘swordsmith’ is True. If you only want to match whole words, you ought to use regular expressions:

import re def findWholeWord(w): return re.compile(r'\b()\b'.format(w), flags=re.IGNORECASE).search findWholeWord('seek')('those who seek shall find') # -> findWholeWord('word')('swordsmith') # -> None 

Is there a really fast method of searching for multiple words, say a set of several thousand words, without having to construct a for loop going through each word? I have a million sentences, and a million terms to search through to see which sentence has which matching words. Currently it’s taking me days to process, and I want to know if there’s a faster way.

If you want to find out whether a whole word is in a space-separated list of words, simply use:

def contains_word(s, w): return (' ' + w + ' ') in (' ' + s + ' ') contains_word('the quick brown fox', 'brown') # True contains_word('the quick brown fox', 'row') # False 

This elegant method is also the fastest. Compared to Hugh Bothwell’s and daSong’s approaches:

>python -m timeit -s "def contains_word(s, w): return (' ' + w + ' ') in (' ' + s + ' ')" "contains_word('the quick brown fox', 'brown')" 1000000 loops, best of 3: 0.351 usec per loop >python -m timeit -s "import re" -s "def contains_word(s, w): return re.compile(r'\b()\b'.format(w), flags=re.IGNORECASE).search(s)" "contains_word('the quick brown fox', 'brown')" 100000 loops, best of 3: 2.38 usec per loop >python -m timeit -s "def contains_word(s, w): return s.startswith(w + ' ') or s.endswith(' ' + w) or s.find(' ' + w + ' ') != -1" "contains_word('the quick brown fox', 'brown')" 1000000 loops, best of 3: 1.13 usec per loop 

Edit: A slight variant on this idea for Python 3.6+, equally fast:

def contains_word(s, w): return f' ' in f' ' 

Источник

Оцените статью