如何忽略正则表达式中的大小写

时间:2014-01-16 21:20:38

标签: regex

我想检查字符串是否包含两个单词“hello world”。我正在使用这样的东西:

str = " aa  bbb  hEllo accc woRld"
str.matches( "(.*)" + "hello" + "(.*)" + "world" + "(.*)" );

如何执行此正则表达式不区分大小写?

5 个答案:

答案 0 :(得分:7)

尝试将case-insensitive modifier (?i)放在正则表达式的开头:

 str.matches( "(?i)(.)" + "hello" + "(.)" + "world" + "(.*)" );

答案 1 :(得分:3)

通常会有一个可以设置的标志。对于许多语言,例如PHP / JS,您可以在分隔符之后用/REGEX/i编写正则表达式:i

答案 2 :(得分:0)

也许这就是:

str.matches( "(.*)" + "([hH])" + "([eE])" + "([lL])" + "([lL])" + "([oO])"  + "(.*)" + "([wW])" + "([oO])" + "([rR])" + "([lL])" + "([dD])" + "(.*)" );

答案 3 :(得分:0)

我认为有一种比这个更有效的方式,但无论如何...... 对于“hello”“world”字符串的每个字母,您都可以使用运算符 | (或)

例如使用 hello

(H | h)(E | e)(L | l){2}(O | o)

这意味着 H或h 然后 E或e 然后 L或l (2次)然后 O或o

我没有对此进行测试,但希望它会对你有所帮助。

答案 4 :(得分:-1)

您可以将字符串小写并进行比较。

str = "dffdfHellodasfWorld"
re.findall("(.*)" + "hello" + "(.*)" + "world" + "(.*)", str.lower())

这是在python BTW。

注意str.lower()