如何使下面的正则表达式忽略大小写敏感性?它应该匹配所有正确的字符,但忽略它们是小写还是大写。
G[a-b].*
如何使下面的正则表达式忽略大小写敏感性?它应该匹配所有正确的字符,但忽略它们是小写还是大写。
G[a-b].*
当前回答
假设你想要整个正则表达式忽略大小写,你应该寻找i标志。几乎所有的正则表达式引擎都支持它:
/G[a-b].*/i
string.match("G[a-b].*", "i")
查看您的语言/平台/工具的文档,以查找匹配模式是如何指定的。
如果你只想让部分正则表达式不区分大小写(就像我最初的答案假设的那样),那么你有两个选择:
使用(?i)和[可选](?-i)模式修饰符: (?我)G (a - b)(? -我)。* 将所有的变量(即小写和大写)放在正则表达式中-如果不支持模式修饰符,则很有用: (gG) [a-bA-B]。*
最后一点:如果您处理的是ASCII之外的Unicode字符,请检查您的正则表达式引擎是否正确地支持它们。
其他回答
C#
using System.Text.RegularExpressions;
...
Regex.Match(
input: "Check This String",
pattern: "Regex Pattern",
options: RegexOptions.IgnoreCase)
options: RegexOptions。IgnoreCase
(gG) [aAbB]。*如果图案不是太复杂或太长,可能是简单的解决方案。
科特林:
"G[a-b].*".toRegex(RegexOption.IGNORE_CASE)
您还可以将您要检查模式匹配的初始字符串引导为小写。在你的图案中分别使用小写符号。
只是为了完整起见,我想在Unicode中添加正则表达式的解决方案:
std::tr1::wregex pattern(szPattern, std::tr1::regex_constants::icase);
if (std::tr1::regex_match(szString, pattern))
{
...
}