gpt4 book ai didi

python - 如何从字符串中删除所有非字母字符?

转载 作者:行者123 更新时间:2023-12-01 09:12:15 25 4
gpt4 key购买 nike

我一直在开发一个需要十六进制文件的程序,如果文件名以“CID”开头,那么它应该删除前 104 个字符,在那之后有几个单词。我也想删除单词后面的所有内容,但问题是我想要隔离的部分长度不同。

我的代码目前是这样的:

y = 0
import os
files = os.listdir(".")

filenames = []
for names in files:
if names.endswith(".uexp"):
filenames.append(names)
y +=1
print(y)
print(filenames)

for x in range(1,y):
filenamestart = (filenames[x][0:3])
print(filenamestart)
if filenamestart == "CID":
openFile = open(filenames[x],'r')
fileContents = (openFile.read())
ItemName = (fileContents[104:])
print(ItemName)

输入示例文件(从 HxD 中提取):

.........................ýÿÿÿ................E.................!...1AC9816A4D34966936605BB7EFBC0841.....Sun Tan Specialist.................9.................!...9658361F4EFF6B98FF153898E58C9D52.....Outfit.................D.................!...F37BE72345271144C16FECAFE6A46F2A.....Don't get burned............................................................................................................................Áƒ*ž

我已经成功删除了前 104 个字符,但我还想删除“Sun Tan Specialist”之后的字符,这些字符的长度会有所不同,所以我只剩下那部分。

我感谢任何人能给我的任何帮助。

最佳答案

删除字符串中非字母字符的一种方法是使用正则表达式 [ 1 ].

>>> import re
>>> re.sub(r'[^a-z]', '', "lol123\t")
'lol'

编辑

第一个参数r'[^a-z]'是捕获将删除的内容的模式(此处,将其替换为空字符串'')。方括号用于表示类别(该模式将匹配此类别中的任何内容),^ 是“非”运算符,a-z 表示所有小型大写字母字母字符。更多信息请参见:

https://docs.python.org/3/library/re.html#regular-expression-syntax

例如,要保留大写字母和空格,则为:

>>> re.sub(r'[^a-zA-Z ]', '', 'Lol !this *is* a3 -test\t12378')
'Lol this is a test'

但是,从您在问题中提供的数据来看,您需要的确切过程似乎比“删除非字母字符”要复杂一些。

关于python - 如何从字符串中删除所有非字母字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51560867/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com