Suchen und Ersetzen mit regulären Ausdrücken

Hier finden Sie die Antworten auf häufig gestellte Fragen.
Antworten
Benutzeravatar
Support
Site Admin
Beiträge: 3102
Registriert: 5. Apr 2003 14:21
Betriebssystem: Windows 7 & 10
Produkt: DOpus 11/12, R-Studio 8, Sawmill 8, RDI 6, MindGenius 6
Version DOpus: Pro
Wohnort: Frankfurt
Kontaktdaten:

Suchen und Ersetzen mit regulären Ausdrücken

Beitrag von Support » 8. Aug 2006 16:07

Eine sehr schöne Erklärung der regulären Ausdrücke findet man bei Wikipedia: Reguläre Ausdrücke bei Wikipedia

Teile der regulären Grammatik

. irgendein Zeichen
| Auswahl
[] Zeichenklasse
^ Zeilenanfang
$ Zeilenende
() Gruppe
\ danach folgt normaler Text
* beliebig oft oder gar nicht
? einmal oder gar nicht
+ mindestens einmal


Wie man es in DOpus macht

[a-z]{n} Buchstaben zwischen a und z genau n-mal wird in DOPus folgendermassen aufgebaut:
[a-z][a-z]?
(im unserem Beispiel ist n=2, sind es mehr, so muss man diesen Teil entsprechend oft wiederholen)

[a-z]{n,} Buchstaben zwischen a und z mindestens n-mal wird in DOpus folgendermassen aufgebaut:
[a-z][a-z]+
(im unserem Beispiel ist n=2, sind es mehr, so muss man diesen Teil entsprechend oft wiederholen)


Suchen einer E-Mail wie support@haage-partner.de
([a-z0-9]*)\@(.*)\.[a-z][a-z]

Suchen von txt-Dateien wie 1234-56-78-name.txt
(..........)\-(.*)\.txt
hier für die erste Klammer soviel Punkte wählen wie Zeichen gesucht werden

oder für den Fall das die Bindestriche wichtig sind:
(....)\-(..)\-(..)\-(.*)\.txt

oder für den Fall, dass vorne nur Zahlen und hinten nur Buchstaben stehen sollen:
([0-9][0-9][0-9][0-9])\- ([0-9][0-9]) \- ([0-9][0-9])\-([a-zA-Z])\.txt

Konkretes Beispiel für DOpus
Suche nach einer txt mit dem Aufbau 1234-56-78-name.txt und soll umgenannt werden in name-1234-56-78.txt:

Alter Name: ([0-9][0-9][0-9][0-9])\- ([0-9][0-9]) \- ([0-9][0-9])\-([a-zA-Z])\.txt
Neuer Name: \4-\1-\2-\3.txt

Dateinamen aus 2 Teilen tauschen
dateinamebereich1-dateinamebereich2.txt so soll es später aussehen
dateinamebereich2-dateinamebereich1.txt. Sagen wir, die Dateinamenbereiche bestehen nur aus kleinen und großen Buchstaben und Zahlen:

Alter Name: ([0-9a-zA-Z])\-([0-9a-zA-Z])\.txt
Neuer Name \2-\1.txt

oder (einfach)

Alter Name: (.*)\-(.*)\.txt
Neuer Name \2-\1.txt

Suche nach dem UK-Postcode mit RegEx
So würde man es normal versuchen:
\b[A-Z]{1,2}[1-9]{1,2}\s+[0-9][A-Z]{1,2}\b

So setzt man es in DOpus ein:
^[A-Z][A-Z]?[1-9][ ][0-9][A-Z][A-Z]?

Ersetzen von [...]
Dateiname [Text].doc soll unbeannte werden in Dateiname.doc
Die Schwierigkeit hierbei ist, dass sich die Klammern [ und ] Elemente der Syntax sind, daher muss jeweils ein \ vorangestellt werden.
Alter Name: (.*) \[(.*)\]\.doc
Neuer Name: \1.doc

Antworten

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 2 Gäste