![]() |
Regex Problem
Hab mal eine Frage zu regulären Ausdrücken:
Beispiel: Ich möchte einen String nach dem Wort "Nummer" oder "Number" untersuchen. "Nummer" kann entweder alleine als auch als Teilwort vorhanden sein. Soweit kein Problem -> Ausdruck z.B.: "(Nummer|Number)". Was muss ich aber machen, wenn ich ausschließen will, dass das Wort "Telefon" auch Teil des Strings ist? Einzelne Zeichen kann ich ja negieren mit "^° aber wie mach ich das mit einem ganzen Wort? Der Ausdruck "(Nummer|Number|^Telefon)" funktioniert so ja nicht. Wie mache ich das? |
Re: Regex Problem
Am sinnvollsten einfach eine zweite Regex bzw. die Stringsuchfunktion der Sprache deiner Wahl benutzen. Du könntest auch ein negatives lookahead benutzen, aber einfacher, schneller und verständlicher ist es, Pos, indexOf, substr, etc. zu benutzen.
|
Re: Regex Problem
@KingIR
Könntest du mir mal ein Beispiel dafür geben? |
Re: Regex Problem
Haste das mal probiert:
[^telefon](nummer|number) |
Re: Regex Problem
Das Problem ist, dass "Telefon" überall stehen kann. Z.B. "Nummer - Telefon" kann genauso wie "Telefonnummer" vorkommen. Normalerweise würde ich das ja auch mit "Pos" oder so machen, aber ich muss das ganze in einen regulären Ausdruck unterbringen und darf keinen Delphi - Code verwenden. Gibt es da nicht sowas wie "and not (Telefon)" dann würde das immer greifen. Kann man das mit Lookahead oder machen. Das wäre toll, wenn ich da mal ein Beispiel hätte.
|
Re: Regex Problem
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:22 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz