Schopnost kontrolovat slovo v řádku je důležitou a často používanou operací při vývoji v programovacím jazyce Python. Při řešení úloh zpracování textů se často setkáváme s nutností určit, zda je určité slovo obsaženo v daném řádku.
Python poskytuje několik způsobů, jak provést takovou kontrolu. Můžeme použít různé metody řetězcových objektů nebo použít regulární výrazy pro složitější úkoly.
V tomto článku se podíváme na několik příkladů kódu v Pythonu, které vám pomohou zkontrolovat slovo v řádku. Podíváme se na různé přístupy, jako je použití metod in, find a použití regulárních výrazů pomocí modulu re.
Pravidelné výrazy
Python má vestavěný modul pro práci s pravidelnými výrazy re. Poskytuje různé funkce a metody, které lze použít k práci s textem.
Základní funkcí pro nalezení shody podle pravidelného výrazu je re.search(). Přijímá dva argumenty: šablonu a řádek, ve kterém je třeba hledat. Pokud je nalezena shoda, funkce vrátí objekt Match, který obsahuje informace o shodě.
Příklad použití funkce re.search():
text = " toto je příklad textu pro vyhledávání."
match = re.search(pattern, text)
print ("nenalezena shoda")
Regulární výrazy také umožňují použití metasimvol, které usnadňují vyhledávání. Například symbol .""používá se k označení jakéhokoli symbolu a symbol" ^ " je pro začátek řetězce.
Příklad použití metasymvolů:
text = " toto je začátek řádku."
match = re.search(pattern, text)
print ("nenalezena shoda")
Regulární výrazy jsou velmi flexibilní nástroj, který lze použít pro mnoho úkolů. Umožňují vyhledávat, nahrazovat, zvýrazňovat a manipulovat s textem podle daných šablon.
Metoda find
Metoda find vezme jeden argument-podstavec, který je třeba najít v řádku, a vrátí index prvního vstupu této podstavce. Pokud není podklad nalezen, metoda vrátí -1.
Příklad použití metody find:
# řádek, ve kterém budeme hledat podklad
string = " Ahoj, jak se máš?"
# podklad, který budeme hledat
Pokud je výsledek -1, není v řádku nalezena žádná podřada. Pokud je výsledek odlišný od -1, pak je to index prvního vstupu podřazení v řádku.
V tomto případě bude výsledek 8, protože podřazka " jak " se poprvé setkává v řádku s indexem 8.
Metoda find pracuje s registrem znaků, to znamená, že velká a malá písmena jsou různé znaky. Pokud potřebujete provést vyhledávání bez registru, můžete použít metodu lower před vyvoláním metody find:
# řádek, ve kterém budeme hledat podklad
string = " Ahoj, jak se máš?"
# podklad, který budeme hledat bez registru
Metoda tedy find umožňuje jednoduchou kontrolu slova v řádku v jazyce Python.
Metoda in
Python poskytuje vestavěnou metodu in, která vám umožní zkontrolovat slovo nebo podřazení v řádku. Metoda in vrací logickou hodnotu True, pokud je nalezeno slovo nebo podřazení, a False jinak.
# Проверяем наличие слова "привет" в строкеstring = "Привет, как дела?"if "привет" in string.lower():print("Слово 'привет' найдено!")else:print("Слово 'привет' не найдено!")
Metodu in lze také použít ke kontrole přítomnosti více slov nebo podřazení na řádku pomocí příkazů and a or . Například:
# Проверяем наличие слов "привет" и "как" в строкеstring = "Привет, как дела?"if "привет" in string.lower() and "как" in string.lower():print("Слова 'привет' и 'как' найдены!")else:print("Не все слова найдены!")
Metoda in je jednoduchý a pohodlný způsob, jak zkontrolovat, zda je v řádku v Pythonu slovo nebo podřazení.
Rozdělení řádku na slova
Metoda split () rozdělí řádek na části na základě oddělovače, který je výchozí mezerou. Například:
text = "Привет, мир!"words = text.split()print(words)
['Привет,', 'мир!']
Metoda re.split () umožňuje rozdělit řádek na části pomocí regulárního výrazu jako oddělovače. Například:
import retext = "Hello, world!"words = re.split(r'\W+', text)print(words)
['Hello', 'world', '']
Všimněte si , že tento příklad použil regulární výraz \W+, který odpovídá jakémukoli nealfavitově digitálnímu symbolu nebo skupině znaků.
Když znáte tyto dvě metody, můžete snadno rozdělit řádek na slova a použít je ve svém programu k provádění různých operací.
Metoda count
Metoda count umožňuje zkontrolovat, kolikrát se konkrétní slovo vyskytuje v řádku. Aplikuje se na řetězcový objekt a vrací počet nalezených shod.
Syntaxe metody je následující: řádek.count (slovo).
Příklad použití metody count:
text = "miluji programování v Pythonu"
V tomto příkladu jsme vytvořili řetězec proměnné text, obsahující frázi "Miluji programování v Pythonu". Pak jsme použili metodu count Chcete-li zkontrolovat počet vstupů slova "Python" do tohoto řádku. Výsledkem práce metody je číslo 1, protože slovo "Python" se v původním řádku vyskytuje pouze jednou.
Metoda count umožňuje také zkontrolovat různé znaky nebo sekvence znaků v řádku. Můžete například zkontrolovat počet výskytů symbolu "a":
V tomto příkladu jsme vytvořili řetězec proměnné word obsahuje slovo "banana". Pak jsme použili metodu count pro výpočet počtu znaků "a". Výsledkem práce metody je číslo 3, protože symbol "a" se v řádku vyskytuje třikrát.
Metoda count je vhodným nástrojem pro kontrolu přítomnosti slova nebo symbolu na řádku a počítání počtu jejich výskytů.
Knihovna re
V programovacím jazyce Python existuje výkonná knihovna re (regular expressions), která Vám umožňuje pracovat s pravidelnými výrazy. Regulární výrazy jsou šablony, které se používají k nalezení určitých sekvencí znaků v textu.
Knihovna re poskytuje různé metody a funkce pro práci s pravidelnými výrazy. Jednou z těchto metod je metoda search, která umožňuje najít první shodu regulárního výrazu v řádku. Pokud nejsou nalezeny žádné shody, metoda vrátí None.
Příklad použití metody search:
| Kód | Výsledek |
|---|---|
| import re | |
| string = "Hello, world!" | |
| pattern = "world" | |
| result = re.search(pattern, string) | |
| print(result) |
V tomto příkladu používáme metodu search k nalezení slova "world" v řádku. Metoda vrací objekt re.Match, který obsahuje informace o shodě, včetně indexů začátku a konce shody v řádku.
Knihovna re také poskytuje další metody a funkce, jako je findall, finditer, sub, split a další, které umožňují složitější práci s pravidelnými výrazy. Tyto metody a funkce lze použít k vyhledání všech shod na řádku, nahrazení shod na jiné hodnoty, oddělení řetězce podle náhod a provádění dalších operací.