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">>NAME</text> size="1.2" layer="25">>NAME</text> size="1" layer="25">>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
:
Verschoben durch Admin
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
:
Bearbeitet durch User
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">>NAME</text>' | sed -re 's/size=".*"/size="12"/' |
2 | size="12">>NAME</text> |
3 | -> echo 'size="1.2" layer="25">>NAME</text>' | sed -re 's/size="[0-9.]+"/size="12"/' |
4 | size="12" layer="25">>NAME</text> |
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
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
:
Bearbeitet durch User
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.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.