搜索包含括号的完全匹配

时间:2017-07-18 19:47:59

标签: python regex

我正在从一个文件中读取行,每个文件的格式如下:

array_name[0]
array_name[1]

如何在python中对此字符串进行完全匹配?我试过这个:

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

但是考虑到括号([0],[1]等)中的部分,它似乎始终匹配

1 个答案:

答案 0 :(得分:1)

来自re模块的

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]'>