2016-09-13 9 views
-1

Ich versuche Regex für leere Zeichenfolge aus CSV-Datei, die letzte Spalte der Reihe bestehend Anzahlleere Zeile mit regex passend und das Überspringen

zB hat kommen zu implementieren: "","","","","","","","","",5

Das RegexMuster, die ich verwende ist wie (\W*\d\W) obwohl es jetzt funktioniert, aber auf längere Sicht bin ich nicht sicher, ob es die Anforderung der Überprüfung der leeren Zeile mit der letzten Spalte als Ziffer erfüllen wird.

Könnte ein besseres Muster vorgeschlagen werden. Ich bin noch neu in Regex.

+1

'(\" \ "\,) + \ d + $'? – Slavik

+0

Danke Slavik, aber es ist nicht in der Lage, es zu entsprechen. –

+0

Ich habe mein Muster aktualisiert und kam mit (^ (\ "\), +?,? \\ d + ?,) Irgendein Vorschlag für das gleiche. Dadurch wird der Großteil des gültigen Szenarios übergeben. –

Antwort

0

Sie brauchen keine Regex, um einer leeren Zeichenfolge zu entsprechen. Java hat dafür eine spezielle Methode isEmpty. nennen Sie es einfach auf eine Zeichenfolge, die Sie überprüfen wollen:

String str = ...; 
if (str.isEmpty()) { 
    // do something if the string is empty 
} else { 
    // do something if the string is not empty 
} 

Jetzt ist der Grund, warum Ihr regex ist nicht funktioniert, weil Sie entsprechen: \ W * - null oder mehr nicht Wortzeichen \ d - jede Ziffer (0-9) \ W - ein weiteres Nichtwortzeichen

Dies wird etwas völlig anderes zusammenbringen. Ihre Regex Sequenzen wie entsprechen:

[[[[[9]

Sie können mehr über Semantik dieser regex Symbole lesen bedeuten here.

Wenn Sie einen leeren String mit regex passen Sie die folgende regex versuchen:

^$

Was bedeutet:

^- Spiel Anfang einer Zeile $ - Übereinstimmung Ende einer Zeile

Dies wird nur eine Zeile übereinstimmen, die nichts zwischen Anfang und Ende davon hat, die ich s eine leere Zeile.