Pytonorm

Python-strängbyte med mönster

Python-strängbyte med mönster
Alla strängdata kan ersättas med en annan sträng i Python med ersätt () metod. Men om du vill ersätta någon del av strängen genom att matcha ett specifikt mönster måste du använda ett reguljärt uttryck. Den används för att söka i ett specifikt mönster i ett visst strängvärde och strängen kommer att ersättas med en annan sträng om någon matchning hittades. Python använder 're' modul för att använda reguljära uttrycksmönster i skriptet för att söka eller matcha eller ersätta. Att använda mönster för reguljära uttryck för strängersättning är lite långsammare än normal ersättningsmetod () men många komplicerade sökningar och ersättningar kan göras enkelt med hjälp av mönstret. Du kan ersätta en sträng på olika sätt med hjälp av mönstret i Python. Några vanliga användningar av mönster för att ersätta sträng visas i denna handledning. Spyder3 redigeraren används här för att skriva och köra skriptet.

Lista över metatecken:

Innan du använder mönstret för att ersätta sträng måste du känna till sättet att skriva ett vanligt uttrycksmönster. Du kan använda valfritt strängvärde som ett mönster för exakt matchning. Men för den specifika sökningen måste du skriva det reguljära uttrycksmönstret med hjälp av metatecken. Listan över de mest använda metatecken för skrivmönster ges nedan med betydelse.

    Karaktär  Beskrivning
    .  Den används för att matcha varje enskilt tecken utom en ny linje.
    ^  Den används för att matcha alla tecken eller strängar i början av

sträng.

    $  Den används för att matcha alla tecken eller strängar i slutet av strängen.
    +  Den används för att matcha en eller flera förekomster av mönstret.
    ?  Den används för att matcha noll eller en förekomst av mönstret.
   ()  Den används för gruppering av mönster.
   Den används för att matcha baserat på nedre eller övre eller både nedre och övre

gränser.

   []  Den används för att matcha tecken baserat på det angivna intervallet.
   |  Det används för att matcha mönster baserat på ELLER-logik.
   \  Den används för att definiera specifika tecken eller icke-tecken eller siffror eller

icke-siffror.

Ersätt metod:

sub() metod av 're' modulen används i Python för strängbyte.

Syntax:

sub (mönster, ersätt, sträng, räkna = 0, flaggor = 0)

Här mönster, byta ut och sträng är obligatoriska argument. Om den mönster matchas med någon del av sträng då ersätter den delen med värdet på ersätter argument. De andra två argumenten är valfria. Några användningsområden för ovan nämnda metatecken med sub () -metoden visas i följande strängersättningsexempel.

Exempel 1: Ersätt sträng med exakt matchning

Om du vet det exakta strängvärdet som du vill söka i huvudsträngen kan du använda söksträngvärdet som ett mönster i sub() metod. Skapa en pythonfil med följande skript. Här är söksträngvärdet "regnigt" och det ersatta strängvärdet är "soligt".

#!/ usr / bin / env python3
# Importera regex-modul
importera om
# Definiera en sträng
orgStr = "Det är en regnig dag"
# Byt ut strängen
repStr = re.sub ("regnig", "solig", orgStr)
# Skriv ut originalsträngen
skriva ut ("Originaltext:", orgStr)
# Skriv ut den ersatta strängen
print ("Ersatt text:", repStr)

Produktion:

Utgången visas på höger sida av bilden.

Exempel 2: Sök och ersätt sträng i början

Skapa en pythonfil med följande skript för att känna till användningen av '^' i det reguljära uttrycksmönstret. Här, '^ [A-Za-z] + ' används som sökmönster. Det kommer att söka i alla alfabetiska tecken från A till Z och a till z i början av texten och ersätt den med ett tomt värde. Den ersatta strängen skrivs ut i versaler för övre() metod.

#!/ usr / bin / env python3
# Importera regex-modul
importera om
# Ta en stränginmatning
originalText = input ("Ange en text \ n")
# Byt ut strängen baserat på mönstret
ersattText = re.sub ('^ [A-Za-z] +', ", originalText).övre()
# Skriv ut den ersatta strängen
skriv ut ("Ersatt text:", ersattText)

Produktion:

Utgången visas på höger sida av bilden. Här, 'Hej, välkommen till linuxhint' tas som input och 'Hej' word ersätts med " för mönstret.

Exempel 3: Sök och ersätt sträng i slutet

Skapa en pythonfil med följande skript för att känna till användningen av '$ ' symbol i mönster för vanligt uttryck. Här, '[a-z0-9] + $'används som ett mönster i manuset. Den kommer att söka i alla små alfabet och siffror i slutet av texten och om den returnerar sant kommer den matchande delen att ersättas av strängen, 'com.bd''.

#!/ usr / bin / env python3
# Importera regex-modul
importera om
# Ta en stränginmatning
originalText = input ("Ange en webbadress \ n")
# Byt ut strängen baserat på mönstret
ersattText = re.sub ('[a-z0-9] + $', 'com.bd ', originalText)
# Skriv ut den ersatta strängen
tryck ("Ersatt text:", ersattText)

Produktion:

Utgången visas på höger sida av bilden. Här, 'https: // www.Google.com 'tas som inmatningstext och efter ersättning,' https: // www.Google.com.bd 'skrivs ut som utdata.

Exempel 4: Sök och ersätt den specifika delen av en sträng

Skapa en pythonfil med följande skript för att söka och ersätta den del av texten på den plats där mönstret matchar. Här tilldelas en lista med e-postadresser som text till variabeln som heter e-postmeddelanden. '@ [a-z]' används för att söka. Det kommer att söka i vilken understräng som helst med små alfabet följt av '@symbol. Om någon understräng matchar kommer den att ersätta den understrängen med '@linuxhint''.

#!/ usr / bin / env python3
# Importera regex-modul
importera om
# Definiera en sträng
emails = '\ n [email protected] \ n [email protected] \ n [email protected]'
# Byt ut den specifika delen av strängen baserat på mönster
ersattText = re.sub ('@ [a-z] *', '@linuxhint', e-post)
# Skriv ut originalsträngen
skriva ut ("Originaltext:", e-post)
# Skriv ut den ersatta strängen
skriv ut ("\ n Ersatt text:", ersattText)

Produktion:

Utgången visas på höger sida av bilden. Här ersätts varje domändel av e-postadressen som tilldelats i texten med 'linuxhint''.

Slutsats:

Några mycket vanliga användningar av reguljära uttrycksmönster visas i denna handledning för strängersättning. Många andra alternativ finns i python för att skriva olika typer av enkla och komplicerade mönster för att söka och ersätta textsträngen.

Se författarens video: här

Shadow of the Tomb Raider for Linux Tutorial
Shadow of the Tomb Raider är det tolfte tillskottet till Tomb Raider-serien - en action-äventyrsspelfranchise skapad av Eidos Montreal. Spelet mottogs...
Hur man förbättrar FPS i Linux?
FPS står för Bildrutor per sekund. FPS: s uppgift är att mäta bildfrekvensen i videouppspelningar eller spelprestanda. Med enkla ord betecknas antalet...
De bästa Oculus App Lab-spelen
Om du är Oculus-headsetägare måste du vara förtjust i sidoladdning. Sideladdning är processen för att installera icke-butiksinnehåll på ditt headset. ...