正则表达式匹配“真”或“假”

时间:2014-04-18 06:35:55

标签: asp.net regex vb.net validation

我需要创建正则表达式验证器,它需要匹配文本" True"或"错误" (Case Insensitive)。

我试过以下正则表达式

^(True|False|TRUE|FALSE)$

这是对的吗?但是Case Sensitive存在问题。

修改

由于?i

,我在以下答案中尝试了正则表达式,但它没有触发

5 个答案:

答案 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)

单词TrueFalse的另一种方法:

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忽略大小写。 trUeTRUE解析好了