Geavanceerd tekst aanpassen met Geany en reguliere expressies
Als je in een grote lap tekst of in veel tekstbestanden tegelijk een tekst moet zoeken en vervangen dan is een programma zoals Geany of Notepad++ vaak een uitkomst. (Iets als sed kan ook maar dat is wel erg kaal.)
Complexe bewerkingen kun je doen met reguliere expressies. Recentelijk moest ik een aantal YAML bestanden aanpassen voor mijn werk; ik heb het gedaan met Geany en laat ze hieronder als voorbeelden zien. Notepad++ gebruikers, zie hier. Misschien heeft iemand er baat bij.
!
Geany regex voorbeelden
spatie achter puntkomma
vervang alle regels met
variabele:waarde
door
variabele: waarde
code:
(?<ws>\w+:)(?<fn>\w)
\1 \2
verplaats een waarde
verplaats de waarde van “product” naar “huidige_leverancier”
oorspronkelijk:
contract: # deze regel leeg laten
# huidige leverancier is altijd via xx
vorige_leverancier: Eon
huidige_leverancier:
# product ("fixed" of "click" of "variabel")
product: Essent
# type elektriciteit kan zijn: "groen" of "gewoon"
type: gewoon
doel:
contract: # deze regel leeg laten
# huidige leverancier is altijd via xx
vorige_leverancier: Eon
huidige_leverancier: Essent
# product ("fixed" of "click" of "variabel")
product:
# type elektriciteit kan zijn: "groen" of "gewoon"
type: gewoon
code:
(huidige_leverancier: )(\n.+\n.+product: )(\w+)
\1\3\2
onderaan toevoegen
stel dat de laatste regel “einddatum” bevat, en daarvoor nog “gas” voorkomt
code:
(gas: .+\n[\S\s]+.+einddatum.+\n)
\1\nextra regel\ntweede extra regel\n
een veld omzetten naar hoofdletters
Stel dat in onderstaande de adres_straat in hoofdletters moet
leveringsadres: # deze regel leeg laten
adres_straat: Straat
adres_nummer: 42
adres_toevoegsel:
POSTCODE: 1234 ZZ
PLAATS: Voorstad
code:
(leveringsadres:[\S\s]+)(adres_straat:)
\1ADRES_STRAAT:
testen
Test ’m op bv. http://www.regexr.com/
Deze blogpost werd in december 2022 overgezet van WordPress naar een methode gebaseerd op Markdown; het is mogelijk dat hierbij fouten of wijzigingen zijn ontstaan t.o.v. de originele blogpost.