1.问题现场
目的:去掉字符串中的特殊符号,比如\t \r \n。
结果:同样的正则处理代码,得到的结果不同。
maxos:
# -*- encoding:utf-8 -*-
import torch, re
s = '[可怜][可怜][可怜][可怜]那天下像张开的弓,一支支封锁,试图用炎热将同学们打倒。\r\t \n 我忍耐着阳光的炙烤 ,艰难地能格外开恩,让“体育课要进行1000米测试!”这 1'
print('---s before : ', s)
print(type(s))
s = re.sub(r'\s{2,}', '', s)
print('---s after :', s)
输出:
我忍耐着阳光的炙烤 ,艰难地能格外开恩,让“体育课要进行1000米测试!”这 1
<class 'str'>
---s after : [可怜][可怜][可怜][可怜]那天下像张开的弓,一支支封锁,试图用炎热将同学们打倒。我忍耐着阳光的炙烤,艰难地能格外开恩,让“体育课要进行1000米测试!”这1
linux:
# -*- encoding:utf-8 -*-
import torch, re
s = '[可怜][可怜][可怜][可怜]那天下像张开的弓,一支支封锁,试图用炎热将同学们打倒。\r\t \n 我忍耐着阳光的炙烤 ,艰难地能格外开恩,让“体育课要进行1000米测试!”这 1'
print('---s before : ', s)
s = re.sub(r'\s{2,}', '', s)
print('---s after :', s)
输出:
(be) [op@algo src]$ python test.py
---s before : [可怜][可怜][可怜][可怜]那天下像张开的弓,一支支封锁,试图用炎热将同学们打倒。
我忍耐着阳光的炙烤 ,艰难地能格外开恩,让“体育课要进行1000米测试!”这 1
---s after : [可怜][可怜][可怜][可怜]那天下像张开的弓,一支支封锁,试图用炎热将同学们打倒。我忍耐着阳光的炙烤,艰难地能格外开恩,让“体育课要进行1000米测试!”这1
linux系统和mac os系统,使用Python3.6对字符串处理时,它们打印的内容不一致,使用同样的正则处理后的结果也不一致。主要表现在对字符串中特殊符号的作用不同,直观感受是:linux系统上的正则生效了,maxos上的正则没有生效。
原因:猜测两个系统对\t \r \n的显示形式不同,编码方式不同,有何不同,暂且不知。
其他待续ing
2.测试及解决
本地测试时,从打印信息来看,正则没有生效,稀里糊涂。
版权声明:本文为pearl8899原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。