Säännöllinen lauseke (regex) on tarkoitettu vaaditun tiedon poistamiseen mistä tahansa tekstistä, joka perustuu kuvioihin. Niitä käytetään myös laajalti kuviopohjaisten tekstien manipuloimiseen, mikä johtaa tekstin esikäsittelyyn ja ovat erittäin hyödyllisiä digitaalisten taitojen, kuten esim. Luonnollisen kielen käsittely (NLP) .
Tämä artikkeli osoittaa, kuinka säännöllisellä lausekkeella voidaan korvata malleja tarjoamalla useita esimerkkejä, joissa jokainen esimerkki on ainutlaatuinen skenaario itsessään. On erittäin tärkeää ymmärtääre.sub()>
menetelmäre>
(säännöllinen lauseke) -moduuli ymmärtääksesi annetut ratkaisut.
There.sub()>
menetelmä suorittaa yleisen haun ja globaalin korvauksen annetulle merkkijonolle. Sitä käytetään tietyn kuvion korvaamiseen merkkijonossa. Tällä funktiolla on yhteensä 5 argumenttia.
Syntaksi: re.sub(malli, repl, merkkijono, määrä=0, liput=0)
set vs karttaParametrit:
kuvio – kuvio, joka haetaan ja korvataan
repl – merkkijono, jolla kuvio korvataan
merkkijono – sen muuttujan nimi, johon kuvio on tallennettu
count – merkkien määrä, johon asti korvaus suoritetaan
liput – sitä käytetään muokkaamaan regex-kuvion merkitystä
count>
jaflags>
ovat valinnaisia argumentteja.
Esimerkki 1: Tietyn tekstikuvion korvaaminen
Tässä esimerkissä tietty tekstimalli etsitään ja korvataan merkkijonolla. Ajatuksena on käyttää hyvin normaalia muotoare.sub()>
menetelmä, jossa on vain 3 ensimmäistä argumenttia.
Alla toteutus.
# Python implementation of substituting a> # specific text pattern in a string using regex> > # importing regex module> import> re> > # Function to perform> # operations on the strings> def> substitutor():> > > # a string variable> > sentence1> => 'It is raining outside.'> > > # replacing text 'raining' in the string> > # variable sentence1 with 'sunny' thus> > # passing first parameter as raining> > # second as sunny, third as the> > # variable name in which string is stored> > # and printing the modified string> > print> (re.sub(r> 'raining'> ,> 'sunny'> , sentence1))> > > # a string variable> > sentence2> => 'Thank you very very much.'> > > # replacing text 'very' in the string> > # variable sentence2 with 'so' thus> > # passing parameters at their> > # appropriate positions and printing> > # the modified string> > print> (re.sub(r> 'very'> ,> 'so'> , sentence2))> > # Driver Code:> substitutor()> |
>
>Lähtö:
It is sunny outside. Thank you so so much.>
Riippumatta siitä, kuinka monta kertaa vaadittu kuvio on läsnä merkkijonossa,
re.sub()>
funktio korvaa ne kaikki annetulla kuviolla. Siksi molemmat 'erittäin' on korvattu 'niin' yllä olevassa esimerkissä.
Esimerkki 2: Merkistön korvaaminen tietyllä merkillä
Tehtävänä on korvata merkistö tietyllä merkillä. Merkistö tarkoittaa merkkijonoa. Vuonnare.sub()>
menetelmällä merkistö kirjoitetaan [ ](hakasulkeiden) sisään.
Tässä esimerkissä pienten kirjainten merkistö eli [a-z] korvataan numerolla 0. Alla on toteutus.
suunnittelukuvioita javassa
# Python implementation of substituting> # a character set with a specific character> > # importing regex module> import> re> > # Function to perform> # operations on the strings> def> substitutor():> > > # a string variable> > sentence> => '22 April is celebrated as Earth Day.'> > > # replacing every lower case characters> > # in the variable sentence with 0 and> > # printing the modified string> > print> (re.sub(r> '[a-z]'> ,> '0'> , sentence))> > # Driver Code:> substitutor()> |
>
>Lähtö:
22 A0000 00 0000000000 00 E0000 D00.>
Jos on tarpeen korvata sekä pienet että isot kirjaimet, meidän on esitettävä isot kirjaimet tällä tavalla: [a-zA-Z] tai tehokas tapa tehdä on käyttää lippuja.
Esimerkki 3: Merkistön korvaaminen tietyllä kirjaimella kirjainkoolla
Tässä esimerkissä sekä pienet että isot kirjaimet korvataan annetulla merkillä. Käytössä liput , tämä tehtävä voidaan suorittaa erittäin helposti.
There.I>
lippu tarkoittaa re. HUOMAA . Ottamalla käyttöön tämän lipunre.sub()>
menetelmällä ja mainitsemalla minkä tahansa merkistö eli pienet tai isot kirjaimet, tehtävä voidaan suorittaa.
Alla toteutus.
# Python implementation of case-insensitive substitution> # of a character set with a specific character> > # importing regex module> import> re> > # Function to perform> # operations on the strings> def> substitutor():> > > # a string variable> > sentence> => '22 April is celebrated as Earth Day.'> > > # replacing both lowercase and> > # uppercase characters with 0 in> > # the variable sentence by using> > # flag and printing the modified string> > print> (re.sub(r> '[a-z]'> ,> '0'> , sentence, flags> => re.I))> > # Driver Code:> substitutor()> |
>
>Lähtö:
22 00000 00 0000000000 00 00000 000.>
Esimerkki 4: Korvaa tietty määrä merkkiä
Tässä esimerkissä korvaaminen on enintään tietty määrä merkkejä, ei koko merkkijonoa. Suorittaaksesi tämän tyyppisen korvauksenre.sub()>
menetelmällä on argumentticount>
.
Antamalla tälle argumentille numeerinen arvo, voidaan hallita korvattavien merkkien määrää. Alla toteutus.
# Python implementation to perform substitution> # up to a certain number of characters> > # importing regex module> import> re> > # Function to perform> # operations on the strings> def> substitutor():> > > # a string variable> > sentence> => 'Follow your Passion.'> > > # case-insensitive substitution> > # on variable sentence upto> > # eight characters and printing> > # the modified string> > print> (re.sub(r> '[a-z]'> ,> '0'> , sentence,> 8> , flags> => re.I))> > # Driver Code:> substitutor()> |
>
natasha dalal
>Lähtö:
000000 00ur Passion.>
Esimerkki 5: Korvaus käyttämällä lyhennettyä merkkiluokkaa ja tekstin esikäsittelyä
Regex-moduuli tarjoaa monia lyhennettyjä merkkiluokkia niille merkistöille, jotka ovat hyvin yleisiä tekstin esikäsittelyn aikana. Lyhyen merkkiluokan käyttö johtaa tehokkaan koodin kirjoittamiseen ja vähentää tarvetta muistaa jokaisen merkistön alue.
logo java
Saadaksesi yksityiskohtaisen selityksen lyhennettyjen merkkiluokista ja säännöllisen lausekkeen kirjoittamisesta pythonissa tekstin esikäsittelyä varten napsauta tässä . Seuraavassa on joitain yleisesti käytettyjä lyhennelmämerkkiluokkia:
w: vastaa aakkosnumeerisia merkkejä
W: vastaa muita kuin aakkosnumeerisia merkkejä, kuten @, #, ‘, +, %, –
d: vastaa numeromerkkejä
s: vastaa välilyöntejäJonkin syntaksin merkitys:
plus(+)-symbolin lisääminen merkkiluokan tai joukon jälkeen: edellisen merkkiluokan tai sarjan toisto vähintään yhden kerran.asteriski-symbolin (*) lisääminen merkkiluokan tai -joukon jälkeen: edellisen merkkiluokan tai sarjan toisto vähintään 0 kertaa.
lisäämällä caret(^)-symboli ennen merkkiluokkaa tai -joukkoa: vastaava sijainti määritetään kyseiselle merkkiluokalle tai -joukolle merkkijonon alussa.
dollari($)-symbolin lisääminen merkkiluokan tai -joukon jälkeen: vastaava sijainti määritetään kyseiselle merkkiluokalle tai -joukolle merkkijonon lopussa.
Tämä esimerkki osoittaa mainittujen pikamerkkiluokkien käytön tekstin korvaamiseen ja esikäsittelyyn puhtaiden ja virheettömien merkkijonojen saamiseksi. Alla toteutus.
# Python implementation of Substitution using> # shorthand character class and preprocessing of text> > # importing regex module> import> re> > # Function to perform> # operations on the strings> def> substitutor():> > > # list of strings> > S> => [> '2020 Olympic games have @# been cancelled'> ,> > 'Dr Vikram Sarabhai was +%--the ISRO’s first chairman'> ,> > 'Dr Abdul Kalam, the father of India's missile programme'> ]> > > # loop to iterate every element of list> > for> i> in> range> (> len> (S)):> > > # replacing every non-word character with a white space> > S[i]> => re.sub(r> 'W'> ,> ' '> , S[i])> > > # replacing every digit character with a white space> > S[i]> => re.sub(r> 'd'> ,> ' '> , S[i])> > > # replacing one or more white space with a single white space> > S[i]> => re.sub(r> 's+'> ,> ' '> , S[i])> > > # replacing alphabetic characters which have one or more> > # white space before and after them with a white space> > S[i]> => re.sub(r> 's+[a-z]s+'> ,> ' '> , S[i], flags> => re.I)> > > # substituting one or more white space which is at> > # beginning of the string with an empty string> > S[i]> => re.sub(r> '^s+'> , '', S[i])> > > # substituting one or more white space which is at> > # end of the string with an empty string> > S[i]> => re.sub(r> 's+$'> , '', S[i])> > > # loop to iterate every element of list> > for> i> in> range> (> len> (S)):> > > # printing each modified string> > print> (S[i])> > # Driver Code:> substitutor()> |
>
>Lähtö:
Olympic games have been cancelled Dr Vikram Sarabhai was the ISRO first chairman Dr Abdul Kalam the father of India missile programme>