як перевірити значення, починаючи з рядка чи цифри. тут я додав свій код. Я отримую помилку, подібну до очікуваного ідентифікатора.
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
Відповіді:
3 для відповіді № 1Ваша змінна є regex
, Regex
це тип змінної.
Так воно і є:
ReturnValue = Regex.IsMatch(s_str, regex)
Але ваш регулярний вираз також є недоліком. [(a - z)(A-Z)]
створює клас символів, який точно відповідає символам ()-az
, діапазон A-Z
і простір, і ніщо інше.
Це виглядає так, ніби ви хочете відповідати літерами. Для цього просто використовуйте p{L}
це властивість Unicode, що відповідає будь-якому символу, який є буквою будь-якою мовою.
Dim regex As Regex = New Regex("[p{L}d]")
2 для відповіді № 2
може, ви маєте на увазі
Dim _regex As Regex = New Regex("[(a-z)(A-Z)]")
2 для відповіді № 3
Dim regex As Regex = New Regex([(a - z)(A-Z)]) ReturnValue = Regex.IsMatch(s_str, Regex)
Зверніть увагу на різницю у випадку використання regex.IsMatch
. Вам також потрібно навести рядку регулярного виразу: "[(a - z)(A-Z)]"
.
Нарешті, цей регулярний вираз не має сенсу, ви підбираєте будь-яку літеру або круглу думку відкриття / закриття в будь-якому місці рядка.
Щоб відповідати на початку рядка, потрібно включити початковий прив'язок ^
, щось на зразок: ^[a-zA-Z]
відповідає будь-якому літери ASCII на початку рядка.
2 для відповіді № 4
Перевірте, чи починається рядок з a лист або цифра:
ReturnValue = Regex.IsMatch(s_str,"^[a-zA-Z0-9]+")
Regex Пояснення:
^ # Matches start of string
[a-zA-Z0-9] # Followed by any letter or number
+ # at least one letter of number
Подивіться в дії тут.