我想检查字符串是否包含两个单词“hello world”。我正在使用这样的东西:
str = " aa bbb hEllo accc woRld"
str.matches( "(.*)" + "hello" + "(.*)" + "world" + "(.*)" );
如何执行此正则表达式不区分大小写?
答案 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()