2017-05-16 59 views
1

我想寫一個正則表達式,掃描字符串並找到所有的實例「你好」,大寫和小寫字母。問題是,當一個簡單的在字符串正則表達式Python的大寫和小寫標準

the_list = re.compile(r'hello') 

就足夠了只有「你好」的字符串,我想表達的是能夠找到的「你好」所有版本都大寫和小寫字母,如:

Hello, HELlo, hEllo, HELLO, heLLO, etc. 

我也曾嘗試:

the_list = re.compile(r'[a-z][A-Z]hello') 

,但沒有運氣。任何人都可以解釋一個更好的方式來寫這個正則表達式?

+2

使用:'the_list = re.compile(r'hello',re.I)'使其忽略大小寫 – anubhava

回答

6

只需使用IGNORECASE標誌re模塊提供:

the_list = re.compile(r'hello', flags=re.IGNORECASE) 

如果你想少寫,這是足以:

the_list = re.compile(r'hello', re.I) 

由於re.I是寫re.IGNORECASE

的另一種方式

Here是的文檔:

執行不區分大小寫的匹配;像[A-Z]這樣的表達式也將與 小寫字母匹配。這不受當前語言環境的影響,並且 適用於Unicode字符,如預期的那樣。

+1

可能有用的是要注意'flags ='是可選的,所以're.I'已經足夠了 –

+1

@ Mr.Xcoder好的,我又增加了一個例子,我也保留了第一個例子,因爲它更清晰可讀。 :) – abccd

1

這會忽略您正在搜索的單詞中的情況。 hello = re.compile(r'hello',re.I)

相關問題