如何使以下正则表达式忽略区分大小写?它应匹配所有正确的字符,但忽略它们是低级还是大写 .
G[a-b].*
您还可以将您要检查模式匹配的初始字符串引导到小写字母 . 并分别在您的模式中使用小写符号 .
i 标志通常用于不区分大小写 . 你不要't give a language here, but it' ll可能像 /G[a-b].*/i .
i
/G[a-b].*/i
用于验证'abc'的正则表达式忽略区分大小写
(?i)(abc)
为了完整起见,我想在C中使用Unicode添加正则表达式的解决方案:
std::tr1::wregex pattern(szPattern, std::tr1::regex_constants::icase); if (std::tr1::regex_match(szString, pattern)) { ... }
正如我从这篇类似的帖子(ignorecase in AWK)中发现的,在旧版本的awk上(例如在香草Mac OS X上),您可能需要使用 'tolower($0) ~ /pattern/' .
'tolower($0) ~ /pattern/'
IGNORECASE 或 (?i) 或 /pattern/i 将生成错误或为每一行返回true .
IGNORECASE
(?i)
/pattern/i
假设您希望 whole 正则表达式忽略大小写,您应该查找i flag . 几乎所有正则表达式引擎都支持它:
/G[a-b].*/i string.match("G[a-b].*", "i")
查看语言/平台/工具的文档,了解如何指定匹配模式 .
如果你只想让正则表达式的 part 不区分大小写(假设我的原始答案),那么你有两个选择:
(?-i)
(?i)G[a-b](?-i).*
[gG][a-bA-B].*
最后一点:如果您处理除ASCII之外的Unicode字符,请检查您的正则表达式引擎是否正确支持它们 .
取决于实施,但我会使用
(?i)G[a-b].
[gG] [aAbB] . *如果模式不太复杂或太长,可能是简单的解决方案 .
除了已经接受的答案:
请注意,对于 grep ing,只需添加 -i 修饰符即可 . 例如: grep -rni regular_expression 以递归方式搜索'regular_expression' 'r',大小写'i' nsensitive,在结果中显示行'n' umbers .
grep
-i
grep -rni regular_expression
此外,这是一个验证正则表达式的好工具:https://regex101.com/
例如:请参见此图像中的表达式和说明 .
手册页( man grep )
man grep
http://droptips.com/using-grep-and-ignoring-case-case-insensitive-grep
C#
using System.Text.RegularExpressions; ... Regex.Match( input: "Check This String", pattern: "Regex Pattern", options: RegexOptions.IgnoreCase)
具体来说: options: RegexOptions.IgnoreCase
10 回答
您还可以将您要检查模式匹配的初始字符串引导到小写字母 . 并分别在您的模式中使用小写符号 .
i
标志通常用于不区分大小写 . 你不要't give a language here, but it' ll可能像/G[a-b].*/i
.用于验证'abc'的正则表达式忽略区分大小写
为了完整起见,我想在C中使用Unicode添加正则表达式的解决方案:
正如我从这篇类似的帖子(ignorecase in AWK)中发现的,在旧版本的awk上(例如在香草Mac OS X上),您可能需要使用
'tolower($0) ~ /pattern/'
.IGNORECASE
或(?i)
或/pattern/i
将生成错误或为每一行返回true .假设您希望 whole 正则表达式忽略大小写,您应该查找i flag . 几乎所有正则表达式引擎都支持它:
查看语言/平台/工具的文档,了解如何指定匹配模式 .
如果你只想让正则表达式的 part 不区分大小写(假设我的原始答案),那么你有两个选择:
(?i)
和[可选](?-i)
模式修改器:最后一点:如果您处理除ASCII之外的Unicode字符,请检查您的正则表达式引擎是否正确支持它们 .
取决于实施,但我会使用
[gG] [aAbB] . *如果模式不太复杂或太长,可能是简单的解决方案 .
除了已经接受的答案:
Grep用法:
请注意,对于
grep
ing,只需添加-i
修饰符即可 . 例如:grep -rni regular_expression
以递归方式搜索'regular_expression' 'r',大小写'i' nsensitive,在结果中显示行'n' umbers .此外,这是一个验证正则表达式的好工具:https://regex101.com/
例如:请参见此图像中的表达式和说明 .
参考文献:
手册页(
man grep
)http://droptips.com/using-grep-and-ignoring-case-case-insensitive-grep
C#
具体来说: options: RegexOptions.IgnoreCase