Jockwell
2022-08-01T09:18:52+00:00
我需要删掉一长串字符,必须完整一次性匹配才能删除,否则就容易误伤
---- More ----[16D [16D
因为这里面带着空格,特殊字符
粘贴到pycharm是这样的
[img]https://img.nga.178.com/attachments/mon_202208/04/-7Q2q-9lryKaT1kSho-1c.jpg[/img]
找了个在线生成正则的网站,我都没看懂是咋回事
[url]https://regex-generator.olafneumann.org/?sampleText=%20%20----%20More%20----%1B%5B16D%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%1B%5B16D%20asdasd%E9%98%BF%E6%96%AF%E8%BE%BE%E9%98%BF%E6%96%AF%E8%BE%BE%20%20%E9%98%BF%E6%96%AF%E8%BE%BE%20%2012312%20&flags=i&onlyPatterns=false&matchWholeLine=false&selection=0%7CCharacter,1%7CCharacter,2%7CRepeating%20character,6%7CCharacter,7%7CMultiple%20characters,11%7CCharacter,12%7CRepeating%20character,16%7CCharacter,17%7CCharacter,18%7CCharacter,19%7CCharacter,20%7CCharacter,21%7CRepeating%20character,37%7CCharacter,38%7CCharacter,39%7CExact%20number,41%7CCharacter[/url]
原字符串给个示例,你想删除的是哪些,贴出来给你看看手写一个呗。
[quote][tid=32935984]Topic[/tid]
Post by [uid=62713290]Innocent-III[/uid] (2022-08-04 17:22):我需要删掉一长串字符,必须完整一次性匹配才能删除,否则就容易误伤
---- More ----[16D [16D
因为这里面带着空格,特殊字符
粘贴到pycharm是这样的
[img]https://img.nga.178.com/attachments/mon_202208/04/-7Q2q-9lryKaT1kSho-1c.jpg[/img]
找了个在线生成正则的网站,我都没看懂是咋回事
[url]https://regex-generator.olafneumann.org/?sampleT[/quote]看到这个我估计你的脚本大概率是访问路由器交换机设备或者是Linux系统
这里的数据传输实际上是python中的byte类型的数据,实际上不太适合用正则处理,可以直接用replace方法替换掉这些在你转换编码的时候出现问题的字符
[url]https://regexr-cn.com/[/url]
虽然不是生成网站,但能帮你测试
正则挺有意思的,你这种带有目的性的学习应该会很快就能掌握的
生成正则一听就不靠谱…因为首先你要怎么明确表达需求呢。理论上来说,程序员的核心作用就是把需求表达成程序能理解的语言
[s:ac:哭笑]
Reply to [pid=629874424,32935984,1]Reply[/pid] Post by [uid=42991411]巡璃子[/uid] (2022-08-04 18:32)
链接: [url]https://pan.baidu.com/s/1oXSn6phGfjk6l3U3B32--Q[/url] 提取码: 6fr6 复制这段内容后打开百度网盘手机App,操作更方便哦
感谢大佬
我是真的不懂,居然没有像word一样简单的查找替换功能嘛,我不太需要那么智能的
[quote][pid=629863242,32935984,1]Reply[/pid] Post by [uid=60426951]三杠二[/uid] (2022-08-04 17:42):
原字符串给个示例,你想删除的是哪些,贴出来给你看看手写一个呗。[/quote]链接: [[url]https://pan.baidu.com/s/1oXSn6phGfjk6l3U3B32--Q[/url]] 提取码: 6fr6 复制这段内容后打开百度网盘手机App,操作更方便哦
删除掉没用的东西,对齐就行了
[quote][pid=629872080,32935984,1]Reply[/pid] Post by [uid=38554127]BoulderH[/uid] (2022-08-04 18:21):
看到这个我估计你的脚本大概率是访问路由器交换机设备或者是Linux系统
这里的数据传输实际上是python中的byte类型的数据,实际上不太适合用正则处理,可以直接用replace方法替换掉这些在你转换编码的时候出现问题的字符[/quote]我一开始也想用replace的
结果报错查了半天
a=data.replace(' ---- More ---- ','',data)
TypeError: 'str' object cannot be interpreted as an integer
我就是想删掉而已啊
[quote][pid=629878331,32935984,1]Reply[/pid] Post by [uid=62713290]Innocent-III[/uid] (2022-08-04 18:52):
我一开始也想用replace的
结果报错查了半天
a=data.replace(' ---- More ---- ','',data)
TypeError: 'str' object cannot be interpreted as an integer
我就是想删掉而已啊[/quote]字符串前面加上b
b'--more--',b''
import base64
with open('file.txt','r',encoding='utf8') as f:
data=f.read()
need_str=base64.b64decode('LS0tLSBNb3JlIC0tLS0bWzE2RCAgICAgICAgICAgICAgICAbWzE2RCAg').decode()
data_new =data.replace(need_str,'')
print(data_new)
差不多就是这样。里面主要有一些特殊字符(似乎是unicode)所以你直接复制粘贴替换不行。转换一下就好饿
[quote][pid=629882109,32935984,1]Reply[/pid] Post by [uid=38554127]BoulderH[/uid] (2022-08-04 19:10):
字符串前面加上b
b'--more--',b''[/quote]依然会报错
a=data.replace(b' ---- More ---- ',b'',data)
TypeError: replace() argument 1 must be str, not bytes
[quote][pid=629887732,32935984,1]Reply[/pid]
Post by [uid=42991411]巡璃子[/uid] (2022-08-04 19:39): import base64
with open('file.txt','r',encoding='utf8') as f:
data=f.read()
need_str=base64.b64decode('LS0tLSBNb3JlIC0tLS0bWzE2RCAgICAgICAgICAgICAgICAbWzE2RCAg').decode()
data_new =data.replace(need_str,'')
print(data_new)
差不多就是这样[/quote]非常感谢,这个思路很棒,不用搞复杂的转义
非常感谢
[quote][pid=629878331,32935984,1]Reply[/pid] Post by [uid=62713290]Innocent-III[/uid] (2022-08-04 18:52):
我一开始也想用replace的
结果报错查了半天
a=data.replace(' ---- More ---- ','',data)
TypeError: 'str' object cannot be interpreted as an integer
我就是想删掉而已啊[/quote]你后面传个data肯定报错啊 ,第三个参数是最大替换次数,只接收int
[quote][pid=629908859,32935984,1]Reply[/pid] Post by [uid=6352271]luckywcs[/uid] (2022-08-04 21:30):
你后面传个data肯定报错啊 ,第三个参数是最大替换次数,只接收int[/quote]我是猪,搞错了
不过还是报错
a=data.replace(b' ---- More ---- ',b'')
TypeError: replace() argument 1 must be str, not bytes
虽然楼上的方法更好,但我也想学一下怎么不转换也能做替换
[quote][pid=629909784,32935984,1]Reply[/pid] Post by [uid=62713290]Innocent-III[/uid] (2022-08-04 21:35):
我是猪,搞错了
不过还是报错
a=data.replace(b' ---- More ---- ',b'')
TypeError: replace() argument 1 must be str, not bytes
虽然楼上的方法更好,但我也想学一下怎么不转换也能做替换[/quote]这是str不是二进制,把b干掉