Python

Vervanging van Python-tekenreeksen met patroon

Vervanging van Python-tekenreeksen met patroon
Alle stringgegevens kunnen worden vervangen door een andere string in Python door gebruik te maken van de vervang() methode. Maar als je een deel van de string wilt vervangen door een specifiek patroon te matchen, dan moet je een reguliere expressie gebruiken. Het wordt gebruikt om een ​​specifiek patroon in een bepaalde tekenreekswaarde te zoeken en de tekenreeks wordt vervangen door een andere tekenreeks als er een overeenkomst wordt gevonden. Python gebruikt 'opnieuw' module om reguliere expressiepatronen in het script te gebruiken voor zoeken, matchen of vervangen. Het gebruik van patronen voor reguliere expressies voor het vervangen van strings is iets langzamer dan de normale Replace()-methode, maar veel gecompliceerde zoekopdrachten en vervangingen kunnen eenvoudig worden gedaan door het patroon te gebruiken. Je kunt een string op verschillende manieren vervangen met behulp van het patroon in Python. Enkele veelvoorkomende toepassingen van patroon om tekenreeksen te vervangen worden in deze zelfstudie getoond. Spyder3 editor wordt hier gebruikt om het script te schrijven en uit te voeren.

Lijst met metatekens:

Voordat u het patroon gebruikt om tekenreeksen te vervangen, moet u weten hoe u een patroon voor reguliere expressies moet schrijven. U kunt elke tekenreekswaarde gebruiken als patroon voor de exacte overeenkomst. Maar voor de specifieke zoekopdracht moet u het reguliere expressiepatroon schrijven met behulp van metakaraktera. De lijst met de meest gebruikte metatekens voor het schrijven van patronen wordt hieronder gegeven met betekenis.

    Karakter  Omschrijving
    .  Het wordt gebruikt om met elk afzonderlijk teken overeen te komen, behalve een nieuwe regel.
    ^  Het wordt gebruikt om elk teken of tekenreeks aan het begin van de

draad.

    $  Het wordt gebruikt om elk teken of tekenreeks aan het einde van de tekenreeks te matchen.
    +  Het wordt gebruikt om een ​​of meer exemplaren van het patroon te matchen.
    ?  Het wordt gebruikt om nul of één exemplaar van het patroon te matchen.
   ( )  Het wordt gebruikt voor het groeperen van patronen.
   Het wordt gebruikt om te matchen op basis van lager of hoger of zowel lager als hoger

limieten.

   [ ]  Het wordt gebruikt om tekens te matchen op basis van het opgegeven bereik.
   |  Het wordt gebruikt om patronen te matchen op basis van OR-logica.
   \  Het wordt gebruikt om specifieke tekens of niet-tekens of cijfers te definiëren of

niet-cijfers.

Vervang methode:

sub() methode van 'opnieuw' module wordt gebruikt in Python voor het vervangen van strings.

Syntaxis:

sub(patroon, vervang, tekenreeks, aantal=0, vlaggen=0)

Hier patroon, vervangen en draad zijn verplichte argumenten. Als de patroon komt overeen met een deel van de draad dan zal het het onderdeel vervangen door de waarde van het vervangen van de argument. De andere twee argumenten zijn optioneel. Sommige toepassingen van de bovengenoemde metatekens met de methode sub() worden getoond in de volgende voorbeelden van tekenreeksvervanging:.

Voorbeeld-1: string vervangen door exacte overeenkomst

Als u de exacte tekenreekswaarde weet die u in de hoofdtekenreeks wilt zoeken, kunt u de zoekreekswaarde gebruiken als patroon in sub() methode. Maak een python-bestand met het volgende script:. Hier is de zoekreekswaarde 'regenachtig' en de vervangende tekenreekswaarde is 'zonnig'.

#!/usr/bin/env python3
# Regex-module importeren
opnieuw importeren
# Definieer een string
orgStr = "Het is een regenachtige dag"
# Vervang de string
repStr = re.sub("regenachtig", "zonnig", orgStr)
# Print de originele string
print("Oorspronkelijke tekst:", orgStr)
# Druk de vervangen string af
print("Vervangen tekst:", repStr)

Uitgang:

De uitvoer wordt weergegeven aan de rechterkant van de afbeelding.

Voorbeeld-2: Zoek en vervang string in het begin

Maak een python-bestand met het volgende script om het gebruik van te kennen: '^' in het reguliere expressiepatroon. Hier, '^[A-Za-z]+' wordt gebruikt als zoekpatroon. Het zoekt in alle alfabetische tekens van EEN naar Z en een naar z aan het begin van de tekst en vervang deze door een lege waarde. De vervangen string wordt in hoofdletters afgedrukt voor: bovenste() methode.

#!/usr/bin/env python3
# Regex-module importeren
opnieuw importeren
# Neem een ​​string-invoer
originalText = input("Voer een tekst in\n")
# Vervang de string op basis van het patroon
vervangenText = re.sub('^[A-Za-z]+' , ", originele tekst).bovenste()
# Druk de vervangen string af
print("Vervangen tekst:", vervangenTekst)

Uitgang:

De uitvoer wordt weergegeven aan de rechterkant van de afbeelding. Hier, 'Hallo, welkom bij linuxhint' wordt als invoer genomen en 'Hallo' woord wordt vervangen door " voor het patroon.

Voorbeeld-3: Zoek en vervang string aan het einde

Maak een python-bestand met het volgende script om het gebruik van ' te kennen$' symbool in reguliere expressiepatroon expression. Hier, '[a-z0-9]+$' wordt gebruikt als een patroon in het script. Het zal alle kleine alfabetten en cijfers aan het einde van de tekst doorzoeken en als het waar is, wordt het overeenkomende deel vervangen door de tekenreeks, 'com.bd'.

#!/usr/bin/env python3
# Regex-module importeren
opnieuw importeren
# Neem een ​​string-invoer
originalText = input("Vul een url-adres in\n")
# Vervang de string op basis van het patroon
vervangenText = re.sub('[a-z0-9]+$' , 'com.bd', originele tekst)
# Druk de vervangen string af
print("Vervangen tekst:", vervangenTekst)

Uitgang:

De uitvoer wordt weergegeven aan de rechterkant van de afbeelding. Hier, 'https://www.google.com' wordt genomen als invoertekst en na vervangen, 'https://www.google.com.bd' wordt afgedrukt als uitvoer.

Voorbeeld-4: Zoek en vervang het specifieke deel van een string

Maak een python-bestand met het volgende script om het deel van de tekst te zoeken en te vervangen op de plaats waar het patroon overeenkomt:. Hier wordt een lijst met e-mailadressen als tekst toegewezen aan de variabele met de naam e-mails. '@[a-z]' is een gebruikt patroon om te zoeken. Het zoekt in elke substring die begint met kleine alfabetten gevolgd door '@' symbool. Als een subtekenreeks overeenkomt, wordt die subtekenreeks vervangen door '@linuxhint'.

#!/usr/bin/env python3
# Regex-module importeren
opnieuw importeren
# Definieer een string
emails = '\n[email protected] \n[email protected] \n[email protected]'
# Vervang het specifieke deel van de string op basis van patroon
vervangenText = re.sub('@[a-z]*', '@linuxhint', e-mails)
# Print de originele string
print("Oorspronkelijke tekst:", e-mails)
# Druk de vervangen string af
print("\nVervangen tekst:", vervangenTekst)

Uitgang:

De uitvoer wordt weergegeven aan de rechterkant van de afbeelding. Hier wordt elk domeingedeelte van het in de tekst toegewezen e-mailadres vervangen door 'linuxhint'.

Conclusie:

In deze zelfstudie worden enkele veelvoorkomende toepassingen van de patronen voor reguliere expressies getoond voor het vervangen van strings. Er zijn veel andere opties in python om verschillende soorten eenvoudige en gecompliceerde patronen te schrijven voor het zoeken en vervangen van de tekenreeks van de tekst.

Bekijk de video van de auteur: hier

Handige hulpmiddelen voor Linux-gamers
Als je graag games op Linux speelt, is de kans groot dat je apps en hulpprogramma's zoals Wine, Lutris en OBS Studio hebt gebruikt om de game-ervaring...
HD Remastered Games voor Linux die nog nooit eerder een Linux-release hebben gehad
Veel game-ontwikkelaars en uitgevers komen met HD-remaster van oude games om de levensduur van franchise te verlengen, fans die compatibiliteit met mo...
Hoe AutoKey te gebruiken om Linux-spellen te automatiseren
AutoKey is een hulpprogramma voor desktopautomatisering voor Linux en X11, geprogrammeerd in Python 3, GTK en Qt. Met behulp van de scripting- en MACR...