logo

Zástupné znaky v Pythone

Zástupný znak je symbol, ktorý možno použiť namiesto jedného alebo viacerých znakov alebo navyše k nim. V počítačových programoch, jazykoch, vyhľadávacích nástrojoch vrátane operačných systémov sa na zhustenie kritérií vyhľadávania používajú zástupné znaky. Otáznik (?) a hviezdička () sú najobľúbenejšie zástupné znaky.

Typy zástupných znakov

hviezdička (∗)

Na zadanie ľubovoľného počtu znakov možno použiť hviezdičku (*) alebo znak. Hviezdička * sa zvyčajne používa na konci koreňového slova a keď je potrebné hľadať koreňové slová s rôznymi možnými koncami.

Ak napríklad ako príklad použijeme slovo „hra“, výrazy „hráč“ a „hry“ sa zobrazia vo všetkých výsledkoch vyhľadávania. V závislosti od parametrov vyhľadávania a iných slov môžu existovať ďalšie slová okrem týchto dvoch.

Otáznik (?)

Otáznik alebo postava? označuje jeden. S ním možno použiť ktorékoľvek z písmen v koreňovom slove. Keď slovo obsahuje niekoľko ďalších hlások, použitie operátora otáznika urýchli proces.

Namiesto zástupného znaku otáznika bodka resp. znak sa používa na reprezentáciu jedného znaku.

Vezmite si napríklad slovo „česť“. Označilo by to výsledok ako česť, pričom by v tomto kontexte vynechal česť.

Vyhľadávanie zástupných znakov v Pythone

Ak chcete použiť vyhľadávanie pomocou zástupných znakov v Pythone, knižnica re musí byť zahrnutá do programu. Knižnica používaná na prácu s regulárnymi výrazmi v Pythone sa nazýva knižnica re, čo je skratka pre výraz regulárny výraz.

Na vyhľadávanie zostavíme zoznam slov a potom použijeme funkcie knižnice re. Pomocou zástupných znakov nájdeme zhodu so správnym slovom.

Nasledujúci kód Pythonu vykonáva vyhľadávanie pomocou zástupných znakov.

 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ýkon:

 ['hello'] 

Implementácie:

Pomocou modulu regex (regulárne výrazy) môžeme v Pythone implementovať zástupné znaky.

Bodka. Otáznik bol nahradený znakom ?.

 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ýkon:

 color 

Podobne ako pri použití symbolu hviezdičky (*), aj znaky .+ sa používajú na zhodu s jedným alebo viacerými znakmi. Takže v Pythone môže náš regex kód vyzerať nejako takto, aby hľadal všetky slová začínajúce koreňom '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ýkon:

 working worker