Wie finde ich heraus, welche Zeichen in einer Zeichenfolge dazu führen, dass sie nicht mit einem Regex-Muster übereinstiC#

Ein Treffpunkt für C#-Programmierer
Anonymous
 Wie finde ich heraus, welche Zeichen in einer Zeichenfolge dazu führen, dass sie nicht mit einem Regex-Muster übereinsti

Post by Anonymous »

Mit diesem Regex-Muster (in c#):

Code: Select all

^\d{2}/\d{2}/\d{2} \d{2}:\d{2}:\d{2}$
Diese Zeichenfolge entspricht:

Code: Select all

11/10/25 17:22:31
dieses jedoch nicht (es hat nur ein hinzugefügtes „X“)

Code: Select all

X11/10/25 17:22:31
dieses auch nicht:

Code: Select all

11/10/25 X17:22:31
Gibt es eine Möglichkeit herauszufinden, welche Teile der Zeichenfolge dazu führen, dass eine Zeichenfolge nicht mit dem Muster übereinstimmt? (d. h. die Zeichen finden, die, wenn sie entfernt würden, eine Übereinstimmung mit der Regex ergeben würden)
Wie findet man in diesem Fall also das „X“?
Warum ich das möchte:
Ich lese eine Reihe von Textdateien, in denen jede Zeile einem Muster entsprechen sollte. Aber ich habe herausgefunden, dass die Datei in vielen Fällen irgendwie beschädigt zu sein scheint und irgendwo in einigen Zeilen zufällig ein Zeichen hinzugefügt wird, sodass sie nicht mit dem regulären Ausdruck übereinstimmt. Im Moment ignoriere ich diese Zeichenfolgen einfach als ungültig, aber ich versuche herauszufinden, ob eine Zeichenfolge keine Übereinstimmung ergibt, nur weil sich irgendwo ein einzelnes „unerlaubtes“ Zeichen befindet, sodass der reguläre Ausdruck durch das Entfernen dieses Zeichens mit dem Muster übereinstimmt und ich es dann als gültig betrachten kann.
Ich hoffe, diese Erklärung macht Sinn...

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post