在Python字符串中括号前转义(插入反斜杠)

时间:2013-06-04 10:46:27

标签: python escaping

我需要格式化包含类似结构的许多字符串:

 u'LastName FirstName (Department / Subdepartment)'

我的愿望是让字符串看起来像这样:

 u'LastName FirstName \(Department / Subdepartment\)'

含义我需要在开始括号和结束括号中添加反斜杠。

到目前为止,我在Python中这样做:

  displayName = displayName.replace('(', '\(').replace(')', '\)').

这似乎没问题,但我只是想知道:

有更多的Pythonic方式吗?

我找不到合适的方式Python's String documentation,但也许我找错了地方......

2 个答案:

答案 0 :(得分:2)

你已经找到了最恐怖的方式, regex 提供了一个不太可读的解决方案:

>>> import re
>>> s = u'LastName FirstName (Department / Subdepartment)'
>>> print re.sub(r'([()])', r'\\\1', s)
LastName FirstName \(Department / Subdepartment\)

答案 1 :(得分:2)

您可以使用re.escape('string')

示例:

import re

escaped = re.escape(u'LastName FirstName (Department / Subdepartment)')

但请注意,此方法将返回字符串,并且所有非字母数字都会被反斜杠 虽然这可能对你有用。