私はあなたの問題に対して、正規表現を使用せずに取り組もうとしました。
I有し方法はこの方法を使用することができる
Private Function IsValid(ByVal value As String, _
ByVal ParamArray categories As UnicodeCategory()) _
As Boolean
'Create a hashset with valid unicode categories
Dim validSet = New HashSet(Of UnicodeCategory)(categories)
'Group the string value's characters by unicode category
Dim groupedCharacters = value.GroupBy(Function(c) Char.GetUnicodeCategory(c))
'Get an enumerable of categories contained in the string value
Dim actualCategories = groupedCharacters.Select(Function(group) group.Key)
'Return true if the actual categories correspond
'to the array of valid categories
Return validSet.SetEquals(actualCategories)
End Function
文字列の値が指定されたUnicodeカテゴリに対応する文字を含んでいるかどうかを確認する次のような方法(大文字、小文字、数字を...):
Dim myString As String = "aAbbC"
Dim validString As Boolean = IsValid(myString, _
UnicodeCategory.LowercaseLetter, _
UnicodeCategory.UppercaseLetter)
この方法を使用すると、何も変更せずに大文字、小文字のAND桁の文字を許可できます。 IsValidに3番目の引数を追加してください:UnicodeCategory.DecimalDigitNumber
これを一般化したいと思うのですが、現在はaz、0-9、!@#$を持つ文字列が必要です。それは4つすべての文字を持たなくてはなりません。正規表現にすべての順列を入力する必要がありますか? – Shailendra