G[a-b].*
G[a-b].*
如果你希望整个正则表达式不区分大小写,你应该寻找i
标志。几乎所有的正则表达式引擎都支持它:
/G[a-b].*/i
string.match("G[a-b].*", "i")
查阅您的语言/平台/工具文档,了解匹配模式的规范。
如果你只想让正则表达式中的一部分不区分大小写(就像我的原始回答所假定的那样),那么您有两个选择:
使用 (?i)
和 [可选的] (?-i)
模式修饰符:
(?i)G[a-b](?-i).*
将所有变体(即小写和大写)放入正则表达式中——如果不支持模式修改符,则非常有用:
[gG][a-bA-B].*
最后需要注意的是:如果你处理的是ASCII以外的Unicode字符,请检查你使用的正则表达式引擎是否能够正确支持它们。
[a-c]
开头的所有文件夹,以进行更多操作。 - alpha_989RegExp
类拥有一个参数:
RegExp(String source, {bool multiLine = false, bool caseSensitive = true,
- ThinkDigital取决于实现方式,但我会使用
(?i)G[a-b].
变量:
(?i) case-insensitive mode ON
(?-i) case-insensitive mode OFF
现代正则表达式支持对正则表达式的某一部分应用修饰符。如果你在正则表达式的中间插入修饰符 (?im),那么该修饰符只适用于修饰符右侧的正则表达式部分。使用这些正则表达式,你可以通过在修饰符前加上减号 (?-i) 来关闭模式。
(?i)
的作用以及如何结束它((?-i)
)将会非常有帮助。这就是为什么你的回答只有第一名问题的三分之一票数,而不是差不多一样多,因为他们解释了这个微妙的细节。 - Gabriel Staples验证输入是否为'ABC',不区分大小写的正则表达式。
(?i)(abc)
i
标记通常用于大小写不敏感的情况。在这里你没有给出具体的语言,但可能会使用类似于 /G[ab].*/i
或者 /(?i)G[ab].*/
的表达式。
为了完整起见,我想添加在C++中使用Unicode的正则表达式的解决方案:
std::tr1::wregex pattern(szPattern, std::tr1::regex_constants::icase);
if (std::tr1::regex_match(szString, pattern))
{
...
}
G[a-b].*
,而szString是要测试的字符串。 - jlaurensJavaScript
如果您想让匹配不区分大小写,只需在正则表达式的结尾添加i
:
'Test'.match(/[A-Z]/gi)
// 返回 ["T","e","s","t"]
如果不加i
:
'Test'.match(/[A-Z]/g)
// 返回 ["T"]
根据MDN的说法,在JavaScript中,应该向RegExp
构造函数传递i
标志:
const regex = new RegExp('(abc)', 'i');
regex.test('ABc'); // true
C#
using System.Text.RegularExpressions;
...
Regex.Match(
input: "Check This String",
pattern: "Regex Pattern",
options: RegexOptions.IgnoreCase)
具体来说:选项:RegexOptions.IgnoreCase
我从这篇类似的帖子中发现(在AWK中忽略大小写),在旧版本的awk上(例如在原始的Mac OS X上),您可能需要使用'tolower($0) ~ /pattern/'
。
IGNORECASE
或(?i)
或/pattern/i
将为每一行生成错误或返回true。
Pattern pattern = Pattern.compile(regex, Pattern.CASE_INSENSITIVE);
。 - james.garrissgrep
命令时,只需添加-i
修饰符即可进行不区分大小写的搜索。例如:grep -rni regular_expression
可以递归地搜索名为 'regular_expression' 的文件或目录,忽略大小写,并在结果中显示行号。 - Gabriel Staples[Gg][abAB].*
你的正则表达式会错过gable
,因为它要求大写字母G
。 - Luv2code