[Notepad++] Reguläre Ausdrücke

T

Tersus

Gast
Guten Abend,

die Texte sind wie folgt aufgebaut. In jeder Textzeile gibt es viele Zeichenketten, die mit mehreren Tabs getrennt werden. Beispiel:

Code:
Zeile 1: irgendetwas_1 [\t] irgendetwas_2 [\t] irgendetwas_3 [\t] ... [\t] irgendetwas_n

wobei " [\t] " stets den Tab darstellt. Lässt sich hier im Forum nicht realisieren.

Ich möchte in jeder Zeile stets die Zeichenkette finden, die zwischen den ersten beiden Tabs steht. Im oberen Beispiel wäre das "irgendetwas_2". Ich stehe gerade auf dem Schlauch, was das betrifft. Könnt ihr mir helfen?
 
Nein. Abgesehen davon beherrsche ich die englische Sprache nicht.

Und falls einer meint, der gesuchte Ausdruck sei
Code:
\t[^\t]*\t
, der irrt.

Ich möchte nämlich, dass in jeder Zeile jeweils nur das, was zwischen den ersten beiden Tabs steht, gesucht wird. Danach soll gleich in die nächste Zeile gesprungen werden. Ich stehe weiterhin auf dem Schlauch.
 
Zuletzt bearbeitet von einem Moderator:
Wenn Du die Lösung hast, dann verrate sie mir doch bitte, oder wenigstens einen kleinen Rat.
 
Hi,

für dein Problem im Speziellen habe ich die Lösung nicht. Müsste ich mich hinsetzen und mir genauer ansehen, dafür habe ich momentan aber keine Zeit.

Entweder du hoffst, dass jemand das noch für dich macht oder du zeigst Eigeninitiative und testest das Ganze einfach mit so einem Tutorial aus.

VG,
Mad
 
Hi, ist nicht so trivial wie es aussieht, aber vielleicht dir hilft das hier

suche alle textstellen die kleinbuchstaben und ziffern enthalten

^([a-z0-9]+.)([a-z0-9]+)

ersetze den 2. ausdruck

\1repl2

suche Groß/Klein/Ziffern
^([A-Za-z0-9]+.)([A-Za-z0-9]+)

Das ^ heißt Zeilenanfang, (+) wiederholt die erlaubten zeichen, ein (.) am Ende schließt ein beliebiges Zeichen ein (hier unser Tab), womit der 2 ausdruck ab seinem ersten buchstaben zählt sonst hauen wir das tab beim ersetzen mit raus

\1 heisst setze den ersten ausdruck ein (hier erstes wort mit tab). repl2 ist der ersatz für ausdruck 2, bündig angehängt.

Gruß

p.s. Alt+Linke Maustaste für Block select falls du damit leichter dein Ziel erreichst
Ergänzung ()

@Madman

Leider wird nirgends erwähnt wie man nichtdarstellbare Zeichen suchen und ersetzen soll, die scheitern sogar an [eol]. Anders gesagt, geht nicht, weil nicht vorgesehen.

Gruß
 
Zuletzt bearbeitet:
@Plaste

Danke Dir, aber ich hatte die Lösung bereits selber gefunden. Ich habe da meiner Meinung nach eine elegantere Lösung für gefunden.

Code:
Suchen nach: ^([^\t]*)(\t[^\t]*\t) 
Ersetzen durch: \1irgendwas

^ --> sucht nach Zeilenanfang.
([^\t]*) --> sucht nach irgend einer Zeichenkette außer dem Tab!
(\t[^\t]*\t) --> sucht nach einem Tab, dann nach irgend einer Zeichenkette ohne Tab bis hin zum nächsten Tab.

Mit "\1" schreiben wir den ersten Klammerausdruck wieder hin, sodass wir tatsächlich nur das haben, was zwischen den ersten beiden Tabs steht.
 
Zuletzt bearbeitet von einem Moderator:
Nach \t hatte ich zuerst auch gesucht, den Ausdruck aber nicht geklammert, so das die Suche scheiterte. Tststs.

Deine Variante ist okay wenn du die Tabs mitlöschen willst. Sonst verschieb es aus dem 2. Ausdruck in den 1.
etwa ^([^\t]*\t)([^\t]*)

oder
^([^\t]*)(\t)([^\t]*)
\1\2repl2



Macht ja schon fast Spaß :D
Ist neues LeetSpeak :D
Gleich mal ne Signatur basteln
 
Ich bitte um Hilfe bei einem ähnlichen Problem.

Ich habe eine Liste in der Art:

{beispiel Überschrift1}
content1
{/beispiel}

{beispiel Überschrift2}
content2
{/beispiel}

Daraus soll das hier werden:

[bla][tralala title="Überschrift1"]
content1
[/bla]
[bla][tralala title="Überschrift2"]
content2
[/bla]


Ich komme nicht dahinter (nicht mein bester Tag heute), ist jemand so freundlich? Danke.

edit:
Habe jetzt folgenden Teilerfolg:

{beispiel (.*)}[\r\n](.*)[\r\n]{\/beispiel}

funktioniert bei https://regex101.com/, aber nicht in Notepad++ :(

edit2:
\{beispiel (.*)\}[\r\n](.*)[\r\n]\{\/beispiel\} -> schon besser, wenn nicht die Lösung :)

edit3:
Ich komme näher, aber ich bitte um den letzten Kick!

edit4:
Das dürfte es sein:

\{beispiel (.*?)\}[\r\n](.*?)[\r\n]\{\/beispiel\}

ersetzen durch

[bla][tralala title="\1"]\2[/bla]
 
Zuletzt bearbeitet:
Zurück
Oben