python 字符串中未被替换的汉字特殊字符
special character with chinese characters not substituted in python string
我似乎无法在不导致其他字符串出错的情况下替换 ')' 或 '('。 ')'和'('是特殊字符。这里有两个字符串 "sample(志信达).mbox" 和 "sample#宋安兴.mbox" 。如果我用 re 替换字符,汉字也会被替换。这是 python 中的代码:
# -*- coding: utf-8 -*-
import re
source1='sample(志信达).mbox'
source2='sample#宋安兴.mbox'
newname1=re.sub(r'[\(\);)(]','-',source1)
newname2=re.sub(r'[\(\);)(]','-',source2)
print source1,newname1
print source2,newname2
结果如下:
sample(志信达).mbox sample---志信达---.mbox
sample#宋安兴.mbox sample#宋?-兴.mbox
请注意,其中一个字符被替换为“?-”
您应该使用 unicode 文字(参见 https://docs.python.org/2/howto/unicode.html#unicode-literals-in-python-source-code):
# -*- coding: utf-8 -*-
import re
source1 = u'sample(志信达).mbox'
source2 = u'sample#宋安兴.mbox'
newname1 = re.sub(ur'[\(\);)(]','-',source1)
newname2 = re.sub(ur'[\(\);)(]','-',source2)
print source1,newname1
print source2,newname2
结果:
sample(志信达).mbox sample-志信达-.mbox
sample#宋安兴.mbox sample#宋安兴.mbox
此外,不要忘记将 .py
文件保存为 UTF-8(您的 IDE 可能会自动执行此操作,或者您可能需要根据您使用的文本编辑器手动更改编码) .
我似乎无法在不导致其他字符串出错的情况下替换 ')' 或 '('。 ')'和'('是特殊字符。这里有两个字符串 "sample(志信达).mbox" 和 "sample#宋安兴.mbox" 。如果我用 re 替换字符,汉字也会被替换。这是 python 中的代码:
# -*- coding: utf-8 -*-
import re
source1='sample(志信达).mbox'
source2='sample#宋安兴.mbox'
newname1=re.sub(r'[\(\);)(]','-',source1)
newname2=re.sub(r'[\(\);)(]','-',source2)
print source1,newname1
print source2,newname2
结果如下:
sample(志信达).mbox sample---志信达---.mbox
sample#宋安兴.mbox sample#宋?-兴.mbox
请注意,其中一个字符被替换为“?-”
您应该使用 unicode 文字(参见 https://docs.python.org/2/howto/unicode.html#unicode-literals-in-python-source-code):
# -*- coding: utf-8 -*-
import re
source1 = u'sample(志信达).mbox'
source2 = u'sample#宋安兴.mbox'
newname1 = re.sub(ur'[\(\);)(]','-',source1)
newname2 = re.sub(ur'[\(\);)(]','-',source2)
print source1,newname1
print source2,newname2
结果:
sample(志信达).mbox sample-志信达-.mbox
sample#宋安兴.mbox sample#宋安兴.mbox
此外,不要忘记将 .py
文件保存为 UTF-8(您的 IDE 可能会自动执行此操作,或者您可能需要根据您使用的文本编辑器手动更改编码) .