我有與大小寫無關的正則表達式搜索相關的問題。下面是代碼的一部分,我寫道:如何在Python中使用正則表達式時忽略大小寫?
engType = 'XM665'
的engType
值由其他文件中提取。基於engType,我想在包含此部分的另一個文本文件中查找行,並從該行中提取描述信息,說明部分位於engType
字符串和'Serial'
之間。
例如:
lines = ['xxxxxxxxxxx','mmmmmmmmmmm','jjjjj','xM665 Module 01 Serial (10-11)']
pat = re.compile(engType+'(.*?)[Ss][Ee][Rr][Ii][Aa][Ll]')
for line in lines:
des = pat.search(line).strip()
if des:
break;
print des.group(1).strip()
我知道結果會是一個錯誤,因爲我的字符串engType
的情況下,是從什麼是'xM665 Module 01 Serial (10-11)'
,我明白,我可以使用[Ss]
做的情況不同如我在pat
的最後部分所做的那樣不敏感的比較。但是,因爲我的engType是一個變量,所以我無法將它應用於變量。我知道我可以在較低的情況下搜索,如:
lines = ['xxxxxxxxxxx','mmmmmmmmmmm','jjjjj','xM665 Module 01 Serial (10-11)']
pat = re.compile(engType.lower()+'(.*?)serial')
for line in lines:
des = pat.search(line.lower()).strip()
if des:
break;
print des.group(1).strip()
結果:相比Module 01
module 01
的情況是現在不同了。如果我想保持這種情況,我該怎麼做?謝謝!
好,太感謝你了!這工作完美。 – fyr0049