/ / Регулярний вираз у vb.net - регулярний вираз, vb.net

Регулярний вираз у vb.net - регулярний вираз, vb.net

як перевірити значення, починаючи з рядка чи цифри. тут я додав свій код. Я отримую помилку, подібну до очікуваного ідентифікатора.

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

Подивіться в дії тут.