Regulärer Ausdruck zur überprüfung, ob die Daten enthält numerische ( oder leer ist auch gültig)
habe ich die Daten zu validieren, enthält numerische oder nicht, und wenn es einem nicht numerischen Wert 0 zurück, und wenn es numerisch oder leer-Rückgabe 1.
Unten ist meine Abfrage, die ich habe versucht, in SQL.
SELECT dbo.Regex('^[0-9]','123')
- Das ist die Rückkehr 1.
SELECT dbo.Regex('^[0-9]','')
-- dies ist keine Rückkehr 1 aber ich möchte zurückkehren als 1 und ich versuche Platz im "Muster" ist es auch nicht funktioniert...
bitte kann einer helfen....
Vielen Dank im Voraus
- Ich habe den sql-tag, da Sie mit sql
Du musst angemeldet sein, um einen Kommentar abzugeben.
Versuchen:
oder noch besser:
\d
standard ist die Kurzform für[0-9]
. Beachten Sie, dass wenn Sie[0-9]
es bedeutet "entspricht genau einer Ziffer. Die*
Platzhalter bedeutet übereinstimmung mit null oder mehr so\d*
bedeutet übereinstimmung mit null oder mehr Ziffern, die ein leeres Ergebnis.\d
mithalten können "Ziffern" von anderen Sprachen, die in Unicode als gut, so bewusst sein, dass es nicht immer genau entspricht:[0-9]
.Deine Regex ist nicht ganz richtig:
"^[0-9]"
prüft nur, ob das erste Zeichen in der Zeichenfolge ist eine Zahl. Deine regex zurückkehren würde1
auf "3abcde".Verwenden
um zu überprüfen, ob das Feld enthält nur Ziffern (oder gar nichts). Wenn Sie zulassen möchten, dass Leerzeichen, verwenden Sie
Wenn Sie zulassen möchten, dass Zeichen und Nachkommastellen, versuchen
"^\d*$"
, ich habe versucht, so dass es besser lesbar, zumindest nicht für die regex-Experten wie mir, und bekam"^[1-9]*$"
. In meinem Fall brauche ich zahlen von 1 bis 9 zu jeder Zeit haben oder es leer. Schauen Sie es an Online-C# regex-tester.Versuchen
^[0-9]*$
, die passt auf 0 oder mehr Ziffern, nur:sollte 1 zurück, wie es sein sollte...