Kaavan mukaisten merkkien poistaminen

Python:
Kaavan mukaisten merkkien poistaminen

Kuinka:

import re

# Esimerkkimerkkijono
teksti = "Hello, World! 1234"

# Poistetaan kaikki numerot
ei_numeroita = re.sub(r'\d', '', teksti)
print(ei_numeroita)  # Tuloste: "Hello, World! "

# Poistetaan välimerkit
ei_valimerkkeja = re.sub(r'[^\w\s]', '', teksti)
print(ei_valimerkkeja)  # Tuloste: "Hello World 1234"

# Poistetaan vokaalit
ei_vokaaleja = re.sub(r'[aeiouAEIOU]', '', teksti)
print(ei_vokaaleja)  # Tuloste: "Hll, Wrld! 1234"

Oma räätälöity funktioni

Teen tätä tarpeeksi usein, joten muodostin yksinkertaisen delete() funktion. Se on myös hyvä esimerkki doctesteista:

def delete(merkkijono: str, regex: str) -> str:
    """
    >>> delete("Hello, world!", "l")
    'Heo, word!'

    >>> delete("Hello, world!", "[a-z]")
    'H, !'
    """
    return re.sub(regex, "", merkkijono)

Syväsukellus

Merkkijonosta kuviota vastaavien merkkien poistamisen käytäntö juontaa juurensa syvälle tietojenkäsittelytieteeseen, aina varhaisiin Unix-työkaluihin kuten sed ja grep. Pythonissa re-moduuli tarjoaa tämän kyvyn, hyödyntäen säännöllisiä lausekkeita – tehokkaan ja monipuolisen työkalun tekstinkäsittelyyn.

Vaihtoehtoja re-moduulille sisältävät:

  • Merkkijonomenetelmät kuten replace() yksinkertaisiin tapauksiin.
  • Kolmannen osapuolen kirjastot kuten regex monimutkaisempiin kaavoihin ja parempaan Unicode-tukeen.

Kun käytät re.sub(), Python-tulkki kääntää kaavan joukoksi tavukoodeja, joita tilakone käsittelee suorittaen kuviotäsmäyksen suoraan syötetekstissä. Tämä operaatio voi olla resurssi-intensiivistä suurille merkkijonoille tai monimutkaisille kaavoille, joten suorituskyvyn huomioiminen on tärkeää suurten datamäärien käsittelyssä.

Katso myös