Python正则去掉字符串中的特殊符号\t \r \n

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.测试及解决

本地测试时,从打印信息来看,正则没有生效,稀里糊涂。

 

回答: 在Python,可以使用正则表达式来去除字符串特殊符号。下面是几种常见的方法: 1. 使用re.sub()函数,将除了汉字和数字之外的字符替换为空字符串。例如: ```python import re str1 = " 212、Python用replace()函数删除制定 符号 " str2 = re.sub('(\[^\u4e00-\u9fa5\u0030-\u0039\])', '', str1) print(str2) # 输出:"212用函数删除制定符号" ``` 这个方法使用了正则表达式来匹配除了汉字和数字之外的字符,并将其替换为空字符串。 2. 使用strip()函数去除字符串两端的空格。例如: ```python str1 = " 212、Python用replace()函数删除制定 符号 " print(str1.strip()) # 输出:"212、Python用replace()函数删除制定 符号" ``` 这个方法只能去除字符串两端的空格,不能去除字符串间的空格。 3. 使用replace()函数将空格替换为空字符串。例如: ```python str1 = " 212、Python用replace()函数删除制定 符号 " print(str1.replace(' ', '')) # 输出:"212、Python用replace()函数删除制定符号" ``` 这个方法只能去除字符串的空格,不能去除其他特殊符号。 综上所述,以上是几种常见的方法来去除字符串特殊符号。具体使用哪种方法取决于你的需求。 #### 引用[.reference_title] - *1* *2* *3* [Python删除字符串的符号](https://blog.csdn.net/O_nice/article/details/124043331)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值