正则表达式匹配区分大小写

时间:2015-06-13 08:52:15

标签: regex vb.net

我有一个正则表达式,可以在一行中找到两个单词。

问题是它区分大小写。我需要对其进行编辑以使其与案例匹配。

reqular表达式

^(.*?(\bPain\b).*?(\bfever\b)[^$]*)$

3 个答案:

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