正则表达式:忽略大小写

556
我该如何让下面的正则表达式忽略大小写?它应该匹配所有正确的字符,但忽略它们是大写还是小写。
G[a-b].*

只需在正则表达式中包含大写字母和小写字母,或在进行正则表达式匹配之前将其转换为大写字母。 - Chetter Hummin
2
在这种一般情况下,G[a-bA-B].* 显然是最好的选择。大小写敏感性因平台而异,而您没有提供平台信息。 - Joachim Isaksson
25
如果你正在使用Java,你可以通过Pattern类指定这个:Pattern pattern = Pattern.compile(regex, Pattern.CASE_INSENSITIVE); - james.garriss
更多Java选项请参见:https://blogs.oracle.com/xuemingshen/entry/case_insensitive_matching_in_java - james.garriss
请注意,在使用 grep 命令时,只需添加 -i 修饰符即可进行不区分大小写的搜索。例如:grep -rni regular_expression 可以递归地搜索名为 'regular_expression' 的文件或目录,忽略大小写,并在结果中显示行号。 - Gabriel Staples
@JoachimIsaksson 更正:[Gg][abAB].* 你的正则表达式会错过 gable,因为它要求大写字母 G - Luv2code
15个回答

2

Kotlin:

"G[a-b].*".toRegex(RegexOption.IGNORE_CASE)

1

除了已被接受的答案外,还有以下补充:

Grep用法:

请注意,在使用grep时,只需添加-i修饰符。例如:grep -rni regular_expression以递归方式搜索此“regular_expression”,不区分大小写,在结果中显示行号。

此外,这是一个验证正则表达式的好工具:https://regex101.com/

例如:请查看此图像中的表达式和解释。

enter image description here

参考资料:


1
在Java中,Regex构造函数具有

Regex(String pattern, RegexOption option)

所以要忽略大小写,使用:
option = RegexOption.IGNORE_CASE

-3
你也可以将要用于模式匹配的初始字符串转换为小写,并在你的模式中使用相应的小写符号。

-4

你可以在 Visual Studio 和 Visual Studio Code 中使用查找/替换来练习正则表达式。

对于带有大小写的正则表达式,你需要选择“匹配大小写”和“正则表达式”。否则,[A-Z] 将不起作用。输入图像说明在此处。

Visual Studio 2019 Community


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接