在vb.net中正则表达式

时间:2012-11-19 09:40:37

标签: regex 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

4 个答案:

答案 0 :(得分:3)

您的变量为regexRegex是变量的类型。

所以它是:

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中查看。