如何通过python去除数字字符串中的前后字符
off999 2024-11-01 12:52 32 浏览 0 评论
需求场景
这个是在通过OCR或者其他文字识别工具接口,识别到的数据中包含不需要的字符。而我们只想只要识别的数字,当然这个本身识别结果可能也不是对,那就是另外的问题了。而这里我们假设我们识别到的数据,是包含了我们需要的数据的,那么我们怎么通过python去掉那些多余的字符串了。
这就有几个问题。
字符串不固定,普通字符、特殊字符, 比如: ¥ % @ a b c
长度不固定,0、1个、多个
位置不固定, 前、后
"##@1.23abc"
"#1.23##"
"###123##"我们知道python本身有strip方法可以去除特殊字符,但前提是这个特殊字符是可知的,固定的。而对于我说的那些不固定字符的情况就无法很好处理了。所以只能自己想办法处理了,当然我这个也是笨办法,要不是适合所有的场景。
实现思路
这个思路不是一下想出来的,开始是直接把字符串一个遍历,取出判断是不是数字,一直找到不是数字的位置截断,但是这个无法处理开始就是字符的场景,只能去掉后面是字符串的。
后面重新整理实现思路,
- 判断字符串是否存在数字字符,
- 变量字符串是否是数字,保存索引在列表中。
- 通过数字索引和字符串,判断数字是不是连续的,只取第一个连续的数字。
正则处理方式
def findNumV2(str):
# 去除前后的特殊字符,但是如果开始有两段数字,只会得到第一段数字
res= r"\d+[\.]?\d+"
result = re.compile(res)
strint = result.search(str)
return strint.group()# 返回第一个识别的数字的实现方法
def Isint(v):
try:
newv = int(v)
except Exception as e:
return False
return True
def IsFloat(v):
try:
newv = float(v)
except Exception as e:
return False
return True
def hasNum(v):
# numstr =["0"]
# 判断字符串是否包含数字
for i in range(9):
if str(i) in v:
return True
return False
def valueStripv2(v):
# 去除前后的特殊字符,但是如果开始有两段数字,只会得到第一段数字
l = len(v)
if not hasNum(v):
return ""
numlist = []
if Isint(v):
return v
elif IsFloat(v):
return v
else:
return findNumV2(v)
def findNum(indexlist,v):
# 把字符串中第一段数字找出来
for i in range(1,len(indexlist)):
newv = v[indexlist[0]:indexlist[i]]
if "." in v:
if IsFloat(newv):
if indexlist[i] == indexlist[-1]:
# 数字索引是连续的,取到索引列表的当前,但是字符串索引要+1 因为indexlist 的值存的是字符串里面的索引值
newv = v[indexlist[0]:indexlist[i] + 1]
return newv
else:
continue
else:
# 数字索引不是连续的,取到索引列表的前一个,但是字符串索引要+1 因为indexlist 的值存的是字符串里面的索引值
newv = v[indexlist[0]:indexlist[i - 1] + 1]
return newv
else:
if Isint(newv):
if indexlist[i] == indexlist[-1]:
# 到最后了
# 数字索引是连续的,取到索引列表的当前,但是字符串索引要+1 因为indexlist 的值存的是字符串里面的索引值
newv = v[indexlist[0]:indexlist[i] + 1]
return newv
else:
continue
else:
# 数字索引不是连续的,取到索引列表的前一个,但是字符串索引要+1 因为indexlist 的值存的是字符串里面的索引值
newv = v[indexlist[0]:indexlist[i-1]+1]
return newv
def findNumV2(str):
# 正则处理
# 去除前后的特殊字符,但是如果开始有两段数字,只会得到第一段数字
res= r"\d+[\.]?\d+"
result = re.compile(res)
strint = result.search(str)
return strint.group()# 返回第一个识别的数字的
def teststrip():
# 测试函数
s = ["!","@","#","#34;,"%","^","&","*","?",",","↓"]
for i in s:
s1 = i+"123"+i*3
s2 = i*3+"12.3"+i
s3 = "12.3"+i*3
s4 = i*3+"12.3"
print(s1,">>>>>",valueStripv2(s1))
print(s2,">>>>>",valueStripv2(s2))
print(s3,">>>>>",valueStripv2(s3))
print(s4,">>>>>",valueStripv2(s4))
if __name__ == '__main__':
teststrip()实现结果
相关推荐
- 央视cctv5体育直播(央视cctv5体育直播在线观看免费)
-
现在全国每家都有机顶盒,在机顶盒上就可以看CCTV所有频道。也可以用手机浏览器搜索CCTV5体育频道。还有就是可以手机上下载安装央视影音APP,央视频APP都可以看。中央电视台体育频道(频道呼号:CC...
-
- 直播平台app下载大全(直播平台app下载大全免费)
-
专门观看淘宝直播的APP是点淘,这款APP是这段时间才出的,我下载了一个,但是我下载这款APP不是为了买东西当时也是看广告连接才点进去的,它这上面是可以赚一些零花钱,我下载之后他给了我七块钱,然后现在每天弄不弄也能弄个一块钱左右。但是里边的...
-
2026-01-19 01:15 off999
- 网络播放器app(网络播放器怎么连接电视机)
-
牛片APP一站式影视智能功能,几乎可以满足影视人工作中的所有需求。包含的功能有:文字转语音、真人配音、自动加字幕、一键去水印、提词器、拍片估价、堪景神器、影视课程、发布影视相关需求、接单赚钱....等...
- audition(audition属于什么软件)
-
Audition是一款由Adobe开发的音频编辑和混音软件,具有以下主要功能:1.音频录制和编辑:可以录制不同类型的音频,包括对话、音乐、戏剧和环境声音等,还可以使用多种音频效果处理工具对录制...
- office2020官方下载免费完整版
-
Microsoft365和Office2020的区别有以下几点:功能不同。Office2020包含Word、Excel、PowerPoint等组件,功能比较全面;而Microsoft365包...
- 微信管理软件(微信管理)
-
微信管理,可以一键将消息发送到多个群,不限制群数量和次数选择好群组发送消息即可。“里德助手”多消息群发,可以设置多条消息发送,包括图文、小程序,公众号,文章等都是可以的。亲密群发,逢年过节,总是要给...
-
- 优酷视频下载安装2025最新版本
-
2022爱奇艺腾讯优酷会员,要根据具体的需求来选择。喜欢青春偶像剧类型的可以选择爱奇艺视频;喜欢一些自制综艺和自制剧的优酷视频会员是不错的选择;腾讯视频定位就是主打大IP剧和一些热门综艺的转播,一般卫视播出的都会出现在腾讯视频有这方面需...
-
2026-01-19 00:03 off999
- 火辣辣的小说网(火辣辣的小说网名)
-
《司夜爵姜笙》。内容简介:今天是她的婚礼,可新郎司夜爵没有出现。姜笙站在台上,耳边充斥着满座亲朋的窃窃私语。想哭吗?想。可她要真哭出来,场面就更难看了。姜笙固执的站在那儿看着教堂大门。可看着天色从亮到...
- 小程序如何转换成word文档(小程序怎么转文档格式)
-
小程序文件一般是以小程序的代码形式存在的,不能直接转换成文档。如果需要将小程序中的文本内容转换为文档,可以尝试手动复制粘贴到文档编辑器中,或者使用相关的工具或软件进行批量转换。但是,需要注意版权问题和...
- 百度云网盘资源链接(百度云网盘资源链接群组小众圈子)
-
如果您想从网盘中提取网址,可以按照以下步骤操作:1.打开您的网盘,找到您想提取网址的文件或文件夹。2.右键单击该文件或文件夹,选择“复制链接”或“获取链接”等选项。3.将复制的链接粘贴到浏览器地...
-
- pr软件下载手机版(pr软件官方下载)
-
pr2019的软件安装较为简单,点击setup.exe应用程序之后,在弹出的界面设置安装选项:1、语言2、安装路径。这里的语言默认选择中文。默认的安装路径在c盘,推荐安装的非系统盘的盘符中,比如D盘。单击文件后进行路径的指定,指定完成后默认...
-
2026-01-18 23:03 off999
- 音乐剪辑软件免费版(音乐剪辑用什么免费软件)
-
CoolEditPro2.0或2.1CoolEditPro是一款既能支持声音录制,也能支持声音编辑与合成的多功能软件,利用这样的软件,你可以将自己满意的歌声或者喜欢的歌曲录制下来。该软件支持从多种声音...
-
- wifi密码查看密码器下载(wifi密码查看密码器下载官方)
-
在手机的应用商店里,然后找到万能钥匙,点击下载。下载完成后直接安装在桌面上就可以了。在你电话应用里面下载万能钥匙,就自动会出现在桌面上了感觉WiFi共享精灵最好用,WiFi共享精灵是一款电脑搭建免费wifi热点必备软件,电脑安装,一键...
-
2026-01-18 22:43 off999
- 畅读小说免费版(畅读小说在线)
-
1.如果你购买京东plus会员,京东阅读里的畅读书籍就可以免费看了。2.也可以下载得到?这个软件,也有比较多的书籍可以免费看。番茄的畅读卡是指在番茄读书app里设置的一种功能,用于提供会员用户更加畅快...
欢迎 你 发表评论:
- 一周热门
- 最近发表
- 标签列表
-
- python计时 (73)
- python安装路径 (56)
- python类型转换 (93)
- python进度条 (67)
- python吧 (67)
- python的for循环 (65)
- python格式化字符串 (61)
- python静态方法 (57)
- python列表切片 (59)
- python面向对象编程 (60)
- python 代码加密 (65)
- python串口编程 (77)
- python封装 (57)
- python写入txt (66)
- python读取文件夹下所有文件 (59)
- python操作mysql数据库 (66)
- python获取列表的长度 (64)
- python接口 (63)
- python调用函数 (57)
- python多态 (60)
- python匿名函数 (59)
- python打印九九乘法表 (65)
- python赋值 (62)
- python异常 (69)
- python元祖 (57)
