我有一个正则表达式,可以在一行中找到两个单词。
问题是它区分大小写。我需要对其进行编辑以使其与案例匹配。
reqular表达式
^(.*?(\bPain\b).*?(\bfever\b)[^$]*)$
答案 0 :(得分:3)
您可以使用RegexOptions.Ignorecase
设置不区分大小写的匹配模式。这样就可以使整个模式不区分大小写。在模式的开头使用(?i)
内联选项可以实现相同的效果:
(?i)^(.*?(\bPain\b).*?(\bfever\b)[^$]*)$
您可以使用内联标志仅将不区分大小写的模式设置为模式的一部分:
^(.*?(\b(?i:Pain)\b).*?(\b(?i:fever)\b)[^$]*)$
或者你可以将“痛苦”或“痛苦”与
匹配^(.*?(\b(?i:P)ain\b).*?(\bfever\b)[^$]*)$
另一种选择是使用字符类[Pp]
等。
注意您不必围绕整个模式设置捕获组,您可以通过rx.Match(str).Groups(0).Value
访问它。
^.*?(\b[pP]ain\b).*?(\b[Ff]ever\b)[^$]*$
答案 1 :(得分:0)
您通常可以为此设置一个标志,具体取决于您的语言,或者您可以使用多个字符类将正则表达式弄得更难看。 [pP][aA][iI][nN]
基本上是“痛苦”这个词,根本不是区分大小写的。
答案 2 :(得分:0)
好吧,如果您正在使用VB.net,您可以告诉正则表达式对象在创建时忽略区分大小写
'Defines the pattern
Dim MyPattern As String = "BlaBla"
'Create a new instance of the regex class with the above pattern
'and the option to ignore the casing
Dim Regex As New Regex(MyPattern, RegexOptions.IgnoreCase)