Регулярное выражение для соответствия "True" или " False"
мне нужно создать валидатор регулярных выражений, который должен будет соответствовать тексту "True" или "False" (без учета регистра).
Я пробовал следующее регулярное выражение
^(True|False|TRUE|FALSE)$
это правильно? но есть проблема в Case Sensitive.
редактировать
Я пробовал regex в следующих ответах, но он не стреляет, из-за ?i
5 ответов
Я проверил все ответы в этом посте, но ничего не сработало, как ожидалось.
Я Думаю ?i
Не поддерживается в Asp.Net валидатор RegularExpression.
наконец, я использовал следующее регулярное выражение.
^([Tt][Rr][Uu][Ee]|[Ff][Aa][Ll][Ss][Ee])$
это сработало, как и ожидалось.
это регулярное выражение будет использоваться для динамически созданного Asp.net RegularExpressionvalidator
.
использовать RegexOptions.IgnoreCase
опции и использовать следующие выражения:
^(true|false)$
или использовать игнорировать case modifer ?i
такой:
^(?i:true|false)$
другой вариант-преобразовать строку в нижний регистр и просто использовать ^(true|false)$
С небольшой оптимизацией:
^(?: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
другой подход для слова 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
проанализировано ok