我需要格式化包含类似结构的许多字符串:
u'LastName FirstName (Department / Subdepartment)'
我的愿望是让字符串看起来像这样:
u'LastName FirstName \(Department / Subdepartment\)'
含义我需要在开始括号和结束括号中添加反斜杠。
到目前为止,我在Python中这样做:
displayName = displayName.replace('(', '\(').replace(')', '\)').
这似乎没问题,但我只是想知道:
有更多的Pythonic方式吗?
我找不到合适的方式Python's String documentation,但也许我找错了地方......
答案 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)')
但请注意,此方法将返回字符串,并且所有非字母数字都会被反斜杠 虽然这可能对你有用。