logo

Wildcards în Python

Un wildcard este un simbol care poate fi folosit în locul sau în plus față de unul sau mai multe caractere. În programele de calculator, limbile, motoarele de căutare, inclusiv sistemele de operare, metacaracterele sunt folosite pentru a condensa criteriile de căutare. Semnul întrebării (?) și asteriscul () sunt cele mai populare metacaractere.

Tipuri de wildcards

Asteriscul (∗)

Asteriscul (*) sau caracterul poate fi folosit pentru a specifica orice număr de caractere. Asteriscul * este folosit de obicei la încheierea cuvântului rădăcină și atunci când este necesar să se caute cuvinte rădăcină cu o varietate de finalități posibile.

De exemplu, dacă folosim cuvântul „joc” ca exemplu, expresiile „gamer” și „jocuri” vor apărea în toate rezultatele căutării. În funcție de parametrii de căutare și de alte cuvinte, pot exista cuvinte suplimentare pe lângă acestea două.

Semnul întrebării (?)

Semnul întrebării sau personajul? denotă unul. Oricare dintre literele din cuvântul rădăcină poate fi folosită împreună cu acesta. Când un cuvânt conține mai multe alte ortografii, utilizarea operatorului semnului de întrebare accelerează procesul.

În loc de semnul de întrebare wildcard, punctul sau. caracterul este utilizat pentru reprezentarea unui singur caracter.

Luați cuvântul „onoare”, de exemplu. Ar indica rezultatul ca onoare în timp ce omite onoarea în acest context.

Căutare wildcard în Python

Pentru a utiliza căutarea cu wildcard în Python, biblioteca re trebuie inclusă în program. O bibliotecă folosită pentru a lucra cu expresii regulate în Python se numește bibliotecă re, care este un acronim pentru termenul expresie regulată.

Pentru a face căutarea, vom compila o listă de cuvinte, iar după aceea, vom folosi funcțiile re bibliotecă. Cu ajutorul wildcard-urilor, vom găsi o potrivire cu un cuvânt corect.

Codul Python care urmează efectuează o căutare cu wildcard.

 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) 

Ieșire:

 ['hello'] 

Implementări:

Folosind modulul regex (expresii regulate), putem implementa wildcards în Python.

Punctul. Semnul întrebării a fost înlocuit cu un caracter ?.

 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) 

Ieșire:

 color 

La fel ca simbolul asterisc (*), caracterele.+ sunt folosite pentru a potrivi unul sau mai multe caractere. Deci, în Python, codul nostru regex ar putea arăta cam așa pentru a căuta toate cuvintele care încep cu rădăcina „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) 

Ieșire:

 working worker