Wie man einen bestimmten Wert überprüft, beginnen Sie mit einem String oder einer Ziffer. Hier habe ich meinen Code angehängt. bekomme Fehler, wie IDDifier erwartet.
code
----
Dim i As String
dim ReturnValue as boolean
i = 400087
Dim s_str As String = i.Substring(0, 1)
Dim regex As Regex = New Regex([(a - z)(A-Z)])
ReturnValue = Regex.IsMatch(s_str, Regex)
error
regx is type and cant be used as an expression
Antworten:
3 für die Antwort № 1Ihre Variable ist regex
, Regex
ist der Typ der Variablen.
So ist es:
ReturnValue = Regex.IsMatch(s_str, regex)
Aber deine Regex ist auch fehlerhaft. [(a - z)(A-Z)]
erstellt eine Zeichenklasse, die exakt mit den Zeichen übereinstimmt ()-az
, die Reichweite A-Z
und ein Raum und nichts anderes.
Es sieht für mich so aus, als würdest du Buchstaben zusammenbringen wollen. Dafür benutze einfach p{L}
Das ist eine Unicode-Eigenschaft, die mit jedem Zeichen übereinstimmt, das ein Buchstabe in einer beliebigen Sprache ist.
Dim regex As Regex = New Regex("[p{L}d]")
2 für die Antwort № 2
vielleicht meinst du?
Dim _regex As Regex = New Regex("[(a-z)(A-Z)]")
2 für die Antwort № 3
Dim regex As Regex = New Regex([(a - z)(A-Z)]) ReturnValue = Regex.IsMatch(s_str, Regex)
Beachten Sie Fallunterschied, verwenden Sie regex.IsMatch
. Sie müssen auch die Regex-Zeichenfolge angeben: "[(a - z)(A-Z)]"
.
Schließlich macht diese Regex keinen Sinn, Sie passen jeden Buchstaben oder öffnende / schließende Klammern irgendwo in der Zeichenfolge an.
Um am Anfang der Zeichenfolge übereinzustimmen, müssen Sie den Startanker einfügen ^
, etwas wie: ^[a-zA-Z]
passt auf jeden ASCII-Buchstaben am Anfang der Zeichenfolge.
2 für die Antwort № 4
Überprüfen Sie, ob eine Zeichenfolge mit einem beginnt Brief oder Ziffer:
ReturnValue = Regex.IsMatch(s_str,"^[a-zA-Z0-9]+")
Regex Erläuterung:
^ # Matches start of string
[a-zA-Z0-9] # Followed by any letter or number
+ # at least one letter of number
Sehen Sie es in Aktion Hier.