亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

不區分大小寫的正則表達式,無需重新編譯?

不區分大小寫的正則表達式,無需重新編譯?

婷婷同學_ 2019-10-24 14:06:32
在Python中,我可以使用re.compile以下命令將正則表達式編譯為不區分大小寫:>>> s = 'TeSt'>>> casesensitive = re.compile('test')>>> ignorecase = re.compile('test', re.IGNORECASE)>>> >>> print casesensitive.match(s)None>>> print ignorecase.match(s)<_sre.SRE_Match object at 0x02F0B608>有沒有辦法做同樣的事情,但是不用re.compile。在文檔中找不到Perl的i后綴(例如m/test/i)。
查看完整描述

3 回答

?
侃侃無極

TA貢獻2051條經驗 獲得超10個贊

傳遞re.IGNORECASE到flags的PARAM search,match或sub:


re.search('test', 'TeSt', re.IGNORECASE)

re.match('test', 'TeSt', re.IGNORECASE)

re.sub('test', 'xxxx', 'Testing', flags=re.IGNORECASE)


查看完整回答
反對 回復 2019-10-24
?
天涯盡頭無女友

TA貢獻1831條經驗 獲得超9個贊

您還可以使用不帶IGNORECASE標志的搜索/匹配執行不區分大小寫的搜索(在Python 2.7.3中進行了測試):


re.search(r'(?i)test', 'TeSt').group()    ## returns 'TeSt'

re.match(r'(?i)test', 'TeSt').group()     ## returns 'TeSt'


查看完整回答
反對 回復 2019-10-24
?
慕的地6264312

TA貢獻1817條經驗 獲得超6個贊

不區分大小寫的標記(?i)可以直接合并到regex模式中:


>>> import re

>>> s = 'This is one Test, another TEST, and another test.'

>>> re.findall('(?i)test', s)

['Test', 'TEST', 'test']


查看完整回答
反對 回復 2019-10-24
  • 3 回答
  • 0 關注
  • 628 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號