我正在从一个文件中读取行,每个文件的格式如下:
array_name[0]
array_name[1]
如何在python中对此字符串进行完全匹配?我试过这个:
if re.match(line, "array_name[0]")
但是考虑到括号([0],[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]'>