如何检查特定值以字符串或数字开头。在这里我附上了我的代码。我的错误就像想象中的那样。
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
答案 0 :(得分:3)
您的变量为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]")
答案 1 :(得分:2)
也许你的意思是
Dim _regex As Regex = New Regex("[(a-z)(A-Z)]")
答案 2 :(得分:2)
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字母。
答案 3 :(得分:2)
检查字符串是否以字母或数字开头:
ReturnValue = Regex.IsMatch(s_str,"^[a-zA-Z0-9]+")
正则表达式解释:
^ # Matches start of string
[a-zA-Z0-9] # Followed by any letter or number
+ # at least one letter of number
在行动here中查看。