2017-07-18 150 views
0

我在讀線從每一個被格式化這樣一個文件的精確匹配:搜索包含括號

array_name[0] 
array_name[1] 

我怎樣才能做到在這個字符串在python精確匹配?我已經試過這:

if re.match(line, "array_name[0]") 

但似乎不脫離re模塊服用份括號([0],[1]等)考慮

+3

如果你找一個字符串,不要使用正則表達式。 –

回答

1

re.escape所有的時間,以匹配是一個有用的工具,用於自動轉義正則表達式引擎認爲特殊的字符。從文檔:

re.escape(pattern)

逃亡中的所有字符圖案,除了ASCII 字母和數字。如果要匹配任意可能具有正則表達式元字符的任意 字符串,這非常有用。

In [1]: re.escape("array_name[0]") 
Out[1]: 'array_name\\[0\\]' 

而且,你已經扭轉了您的參數的順序。你需要你的模式是第一位的,其次是要匹配的文本:

re.match(re.escape("array_name[0]"), line) 

例子:

In [2]: re.match(re.escape("array_name[0]"), 'array_name[0] in a line') 
Out[2]: <_sre.SRE_Match object; span=(0, 13), match='array_name[0]'>