3

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

 u'LastName FirstName (Department / Subdepartment)'

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

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

这意味着我需要在左括号和右括号中添加一个反斜杠。

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

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

这看起来不错,但我只是想知道:

有没有更 Pythonic 的方式来做到这一点?

我没有找到Python 的 String 文档的正确方法,但也许我找错地方了……

4

2 回答 2

4

您已经找到了最 Pythonic 的方式,正则表达式提供了一个不那么可读的解决方案:

>>> import re
>>> s = u'LastName FirstName (Department / Subdepartment)'
>>> print re.sub(r'([()])', r'\\\1', s)
LastName FirstName \(Department / Subdepartment\)
于 2013-06-04T10:50:50.007 回答
2

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

例子:

import re

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

注意:
此方法将返回所有非字母数字反斜杠的字符串,包括标点符号和空格。

虽然这可能对你有用。

于 2013-06-04T10:51:34.523 回答