Wie füge ich die Ausnahme von Null oder den Wert Null auf die folgende Regex-Anweisung?Wie füge ich Null Ausnahme zu Regex-Anweisung C#
@ "^ [a-zA-Z0-9] \ d {2} a-zA-Z0-9 {2} [A-Za-z0-9] $ | [^ \ x00- \ x80] | \ b \ w {1,1} \ b ";
Wie füge ich die Ausnahme von Null oder den Wert Null auf die folgende Regex-Anweisung?Wie füge ich Null Ausnahme zu Regex-Anweisung C#
@ "^ [a-zA-Z0-9] \ d {2} a-zA-Z0-9 {2} [A-Za-z0-9] $ | [^ \ x00- \ x80] | \ b \ w {1,1} \ b ";
Vorsicht mit dem, was Sie unter NULL
verstehen. In den meisten Programmiersprachen bedeutet dies, dass kein Zeiger, keine Referenz, nicht zugewiesen oder sogar "Null" ist. Eine leere Zeichenfolge ist normalerweise nicht NULL
. Es gibt ein Zeichen in der ASCII-Tabelle für NULL
am Codepunkt 0, so dass Ihre Idee, \x00
zu tun, das Zeichen NULL
erkennen würde.
Wenn Sie nach einer Zeichenfolge ermöglichen null oder leer oder Spiel der Regex zu sein, ich würde vorschlagen, dass die Operationen wie so ...
if (String.IsNullOrEmpty(str) || Regex.IsMatch(str, pattern)) {
// null or match. do stuff...
}
diese Zerschlagung Versuchen Sie, den Punkt zu illustrieren ...
string s1 = null;
string s2 = "";
string s3 = "\x0";
if (s1 == s2) Console.WriteLine("s1 == s2");
if (s1 == s3) Console.WriteLine("s1 == s3");
if (s2 == s3) Console.WriteLine("s2 == s3");
Fügen Sie (...)?
hinzu, um auch leere Zeichenfolgen zu finden. Sie können nicht
var r=new Regex(@"(^[a-zA-Z0-9]\d{2}a-zA-Z0-9{2}[A-Za-z0-9]$|[^\x00-\x80]|\b\w{1,1}\b)?");
var isMatchWhenEmpty = r.IsMatch(string.Empty);
// zu Regex.Ismatch()
oder Regex.Matches()
null als Texteingabe übergeben kehrt wahr
var result = r.IsMatch(null);
// wirft Nullreferenceexception
So zusätzliche Validierung hinzu:
var isMatch = string.IsNullOrEmpty(input) || r.IsMatch(input);
Sie ca eine Nullreferenz mit Regex nicht erkennen, hat es überhaupt keinen Sinn –