Eagle-Bibliotheken mit Notepad++ und regulären Ausdrücken bearbeiten

Gast #3360271
Hallo zusammen,

ich möchte mit Notepad++ Eagle Bibliotheksdateien bearbeiten.

Konkret möchte ich über die Suchfunktion mit regulären Ausdrücken, als 
Beispiel, folgende Zeilen finden:

size="1.25" layer="25">&gt;NAME</text>
size="1.2" layer="25">&gt;NAME</text>
size="1" layer="25">&gt;NAME</text>

Genau geht es um den Wert in Size. Ich suche nach einem Ausdruck mit dem 
ich alle size-Werte finden kann. Problematisch finde ich die 
unterschiedliche Anzahl von Zeichen in den Hochkommas.

Im Prinzip: Finde alle Zeilen mit beliebigen Werten in den Hochkommas 
von size.

Vielen Dank vorab für eure Hilfe.

Gruß

Voler
#3360284
Wie war jetzt die Frage? Du willst dass dir jemand den regulären 
Ausdruck dafür liefert?
Schau doch mal hier: 
http://de.wikipedia.org/wiki/Regul%C3%A4rer_Ausdruck

Tip: Der Punkt steht für ein beliebiges Zeichen und ein Stern hintendran 
sagt, dass es beliebig oft (auch niemals) vorkommen darf. Ein + hingegen 
verlangt dass es min. 1 mal vorkommt.
So und jetzt kannst du doch sowas machen wie:


size=".*"

Dazu noch die Anführungszeichen ordentlich escapen und fertig.

Natürlich kannst du statt dem Punkt das ganze auch eingrenzen auf 
zahlen, oder mit Klassen auch auf Zahlen und Punkte usw.

gruß cyblord
#3360298
cyblord ---- schrieb:
> size=".*"

REs sind greedy, daher wird das auf
"1.25" layer="25"
matchen

Ich schlage daher
size="[0-9.]+"
vor.

Zum reinen auffinden wohl noch irrelevant, aber wenn es ums ersetzen 
geht nicht mehr:
1
-> echo 'size="1.2" layer="25">&gt;NAME</text>' | sed -re 's/size=".*"/size="12"/'
2
size="12">&gt;NAME</text>
3
-> echo 'size="1.2" layer="25">&gt;NAME</text>' | sed -re 's/size="[0-9.]+"/size="12"/'
4
size="12" layer="25">&gt;NAME</text>
Gast #3360310
Hallo zusammen,

danke für eure Antworten. Der Ausdruck funktioniert.

@ Moritz: Der Ausdruck

[0-9.]+

bedeutet dann, dass Zeichen von 0-9 mindestens einmal und beliebig oft 
in den Hochkommas vorkommen können, oder?
Welche Funktion hat der Punkt hinter der 9?

Gruß

Volker
#3360329
Volker schrieb:
> @ Moritz: Der Ausdruck
>
> [0-9.]+
>
> bedeutet dann, dass Zeichen von 0-9 mindestens einmal und beliebig oft
> in den Hochkommas vorkommen können, oder?
> Welche Funktion hat der Punkt hinter der 9?

> Der Punkt steht für ein beliebiges Zeichen

Ansonsten ist der Ausdruck von Moritz sehr schön. Mit dem Greedy stimmt 
natürlich. Man könnte auch explizit die Anführungszeichen ausnehmen. 
Aber so ists eleganter.
Wollte dem TE nur den Weg aufzeigen.

gruß cyblord
#3360442
Volker schrieb:
> bedeutet dann, dass Zeichen von 0-9 mindestens einmal und beliebig oft
> in den Hochkommas vorkommen können, oder?
> Welche Funktion hat der Punkt hinter der 9?

Fast ;)

Im Normalfall bedeutet der . "ein beliebiges Zeichen", wenn man nur den 
Punkt haben wollte müsste man \. schreiben.

Mit den [] definiere ich aber eine Zeichenmenge, da gelten leicht andere 
Regeln, in diesem Fall enthält sie:
0-9  alle Zahlen von 0-9
.    einen Punkt

+ ist, wie du Richtig erkannt hast, ein Quantifier für "mindestens 
einmal".

Damit würde es auch auf 11.12.13 matchen, aber da ich hier davon ausgehe 
dass Eagle sein XML ordentlich aufbaut habe ich darüber hinweggesehen, 
da es sonst einiges komplizierter würde.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 13 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.