我需要创建正则表达式验证器,它需要匹配文本" True"或"错误" (Case Insensitive)。
我试过以下正则表达式
^(True|False|TRUE|FALSE)$
这是对的吗?但是Case Sensitive存在问题。
修改
由于?i
答案 0 :(得分:10)
使用RegexOptions.IgnoreCase
或内联?i
修饰符
^(?i)(true|false)$
答案 1 :(得分:5)
我已经检查了这篇文章中的所有答案,但没有按预期工作。
我猜Asp.Net RegularExpression验证器不支持?i
。
最后我使用了以下正则表达式。
^([Tt][Rr][Uu][Ee]|[Ff][Aa][Ll][Ss][Ee])$
它按预期工作。
此正则表达式将用于动态创建的Asp.net RegularExpressionvalidator
。
答案 2 :(得分:3)
进行小规模优化:
^(?:tru|fals)e$
由于(?i)未验证,我们将在代码中设置不区分大小写。
对于任何需要代码的读者:
Dim FoundMatch As Boolean
Try
FoundMatch = Regex.IsMatch(SubjectString, "^(?:tru|fals)e$", RegexOptions.IgnoreCase)
Catch ex As ArgumentException
'Syntax error in the regular expression
End Try
答案 3 :(得分:2)
使用RegexOptions.IgnoreCase
选项并使用以下正则表达式:
^(true|false)$
或使用ignore case modifer ?i
像这样:
^(?i:true|false)$
另一种选择是将字符串转换为小写,然后使用^(true|false)$
答案 4 :(得分:1)
单词True
或False
的另一种方法:
If Boolean.TryParse(yourString, New Boolean) = true Then
'ok
else
'not ok
End If
如果您想将文本转换为布尔变量并在以后使用它:
Dim value As Boolean
If Boolean.TryParse(yourString, value) = true Then
'Use value
else
'Handle a wrong text situation
End If
Boolean.TryParse
忽略大小写。 trUe
或TRUE
解析好了