logo

Zástupné znaky v Pythonu

Zástupný znak je symbol, který lze použít místo jednoho nebo více znaků nebo navíc k nim. V počítačových programech, jazycích, vyhledávačích, včetně operačních systémů, se zástupné znaky používají ke zhuštění vyhledávacích kritérií. Otazník (?) a hvězdička () jsou nejoblíbenější zástupné znaky.

Typy zástupných znaků

Hvězdička (∗)

Hvězdičku (*) nebo znak lze použít k zadání libovolného počtu znaků. Hvězdička * se obvykle používá na konci kořenového slova a když je nutné hledat kořenová slova s ​​různými možnými konci.

Pokud například jako příklad použijeme slovo „hra“, ve všech výsledcích vyhledávání se zobrazí fráze „hra“ a „hry“. V závislosti na parametrech vyhledávání a dalších slovech mohou existovat další slova kromě těchto dvou.

Otazník (?)

Otazník nebo postava? označuje jeden. Lze s ním použít kterékoli z písmen v kořenovém slově. Pokud slovo obsahuje několik dalších pravopisů, použití operátoru otazníku urychlí proces.

Místo zástupného znaku otazníku tečka resp. znak se používá pro reprezentaci jednoho znaku.

Vezměte si například slovo „čest“. Označilo by to výsledek jako čest, zatímco v tomto kontextu vynechá čest.

Vyhledávání pomocí zástupných znaků v Pythonu

Chcete-li použít vyhledávání pomocí zástupných znaků v Pythonu, musí být knihovna re zahrnuta do programu. Knihovna používaná pro práci s regulárními výrazy v Pythonu se nazývá knihovna re, což je zkratka pro termín regulární výraz.

Pro vyhledávání sestavíme seznam slov a poté použijeme funkce knihovny re. Pomocí zástupných znaků najdeme shodu se správným slovem.

Následující kód Pythonu provádí vyhledávání pomocí zástupných znaků.

 import re str = re.compile('hel.o') a = ['hello', 'welcome', 'to', 'java', 'point'] match_is = [string for string in a if re.match_is(str, string)] print(match_is) 

Výstup:

 ['hello'] 

Implementace:

Pomocí modulu regex (regulární výrazy) můžeme v Pythonu implementovat zástupné znaky.

Tečka. Otazník byl nahrazen znakem ?.

 import re # To change the outcomes, add or remove terms from this list. words = ['color', 'colour', 'work', 'working', 'apple', 'master', 'driving'] for word in words: # Instead of the? symbol, use the . symbol if re.search('col.r', word) : print (word) 

Výstup:

 color 

Stejně jako při použití symbolu hvězdičky (*) se znaky.+ používají ke shodě jednoho nebo více znaků. Takže v Pythonu může náš regexový kód vypadat nějak takto a hledat všechna slova začínající kořenem 'work':

 import re # To change the outcomes, add or remove terms from this list. words = ['car', 'apple', 'work', 'working', 'goat', 'worker'] for word in words: # Instead of using the * symbol, use the.+ symbol. if re.search('work.+', word) : print (word) 

Výstup:

 working worker