如何将精确字符串与其中的特殊字符匹配?

时间:2016-10-20 23:36:07

标签: python python-2.7

import re 
data = "sda      8:0    0 107374182400  0 disk \r\n\root@awx1:~[root@awx1 ~]# s"
re.sub(r"root@awx1:~\[root@awx1 ~\]# s","",data)
'sda      8:0    0 107374182400  0 disk \r\n\root@awx1:~[root@awx1 ~]# s'

它没有被替换。如何将子字符串与正则表达式匹配并替换它?

1 个答案:

答案 0 :(得分:1)

这是re.escape的用途。

>>> data = "sda      8:0    0 107374182400  0 disk \r\nroot@awx1:~[root@awx ~]# s"
>>> substring = re.escape(                            "root@awx1:~[root@awx ~]# s")
>>> re.sub(substring, '', data)
'sda      8:0    0 107374182400  0 disk \r\n'

注意:我从您的示例中删除了一个我认为不存在的额外\字符。在\r\nroot之间。