Seite 1 von 2
GELÖST: Ziffernfolge finden, denen keine eckige Klammer zu ] folgt
Verfasst: Sa 12. Feb 2022, 12:21
von juribel
Ich stehe vor der Aufgabe, Ziffernketten zu finden, denen kein "]" (eckige Klammer zu) folgt. Weiss jemand, wie man so etwas hinbekommt?
Viele freundliche Grüsse
juribel
Re: Ziffernfolge finden, denen keine eckige Klammer zu ] folgt
Verfasst: Sa 12. Feb 2022, 12:23
von Mondblatt24
Hallo,
Ohne Beispieldatei schlag ich mal \d+ als regulären Ausdruck für die Suche vor.
Gruß
Peter
Re: Ziffernfolge finden, denen keine eckige Klammer zu ] folgt
Verfasst: Sa 12. Feb 2022, 12:43
von juribel
Hallo und danke für deine Antwort.
Aber \d+ findet einfach nur Ziffernketten. Ich suche aber Ziffernketten, denen ausdrücklich kein ] folgt (keine eckige Klammer zu).
Meine Suche nach [:digit:]+[^\]] findet ebenfalls nur Ziffernketten, ignoriert aber die Anweisung, nur Ziffernketten gefolgt von Nicht-] zu finden.
Als Beispiel: Dieser String ist in meinem Kontext korrekt und soll nicht gefunden werden: [PMID: 12345678];
In diesem String fehlt die schliessende eckige Klammer, und der soll gefunden werden: [PMID: 12345678;
Viele freundliche Grüsse, juribel
Re: Ziffernfolge finden, denen keine eckige Klammer zu ] folgt
Verfasst: Sa 12. Feb 2022, 12:51
von miesepeter
Folgt jeweils ein Semikolon? Dann wär's wohl einfacher...
Schrift: Liberation Serif
Mein Workaround:
- Suche alle Ziffernfolgen mit abschließender eckiger Klammer: [:digit:]+?\]
- Verlasse SUCHEN&ERSETZEN - die Texte bleiben markiert
- Formatiere diese dann in einer anderen Schrift, Beispiel: Liberation Sans
- Suche jetzt (Format: Liberation Serif) nach Ziffernfolgen, diese werden nicht von einer abschließenden Klammer gefolgt. Sie sind ja in einer anderen Schrift vorhanden...
Das wird halt nur klappen, wenn sonst keine Zahlenfolgen vorhanden sind. Du kannst aber die Anzahl der Zahlen in der Suche festlegen, z.B.
[:digit:]{6}
Ciao
Re: Ziffernfolge finden, denen keine eckige Klammer zu ] folgt
Verfasst: Sa 12. Feb 2022, 13:08
von mikele
Hallo,
versuche mal
[:digit:]+[^]0-9]
Re: Ziffernfolge finden, denen keine eckige Klammer zu ] folgt
Verfasst: Sa 12. Feb 2022, 14:04
von juribel
Moin,
da muss ich wohl doch mein perl anschmeissen.
1. alle
[^0-9] in dem PMID-Kontext durch etwas Anderes ersetzen, was da nie vorkommen kann, z. B. dem Buchstaben
Y.
2. alle PMID Vorkommen finden, denen hinter der Ziffernkette
kein Y folgt.
3. Dann mal weitersehen...
Vielen herzlichen Dank erstmal, und viele freundliche Grüsse, juribel
Re: Ziffernfolge finden, denen keine eckige Klammer zu ] folgt
Verfasst: Sa 12. Feb 2022, 17:33
von mikele
Hallo,
was funktioniert mit meinem Vorschlag nicht?
Re: Ziffernfolge finden, denen keine eckige Klammer zu ] folgt
Verfasst: Sa 12. Feb 2022, 18:20
von Wanderer
Ich würde erstmal noch einen zusätzlichen Backslash als quote für die zu suchende eckige Klammer erwarten:
aber dann hätte eigentlich einer der obigen Vorschläge auch schon funktionieren können...
Re: Ziffernfolge finden, denen keine eckige Klammer zu ] folgt
Verfasst: Sa 12. Feb 2022, 19:57
von mikele
Hallo,
innerhalb der eckigen Klammern müssen die Zeichen nicht maskiert werden (außer der Bindestrich, weil der hier eine besondere Bedeutung).
allein funktioniert nicht, weil auch eine Ziffernfolge allein die Bedingung erfüllt (das letzte Zeichen ist ja keine eckige Klammer)
Also muss nach einer Ziffernfolge gesucht werden, auf die keine eckige Klammer und auch keine weitere Ziffer folgt.
Bei meinen Test war ich daher mit
erfolgreich.
Re: Ziffernfolge finden, denen keine eckige Klammer zu ] folgt
Verfasst: Sa 12. Feb 2022, 21:12
von Wanderer
Das ich das Endzeichen von [] nicht maskieren muss, sondern das vom Caret ^ automatisch erledigt wird, ist für mich erstmal überraschend. Muss ich nacher mal ausprobieren.
Ich hatte tatsächlich an einnen Tipp- oder übertragungsfehler bei Dir gedacht.
Mfg, Jörn