找回密码
 立即注册

扫一扫,访问微社区

QQ登录

只需一步,快速开始

查看: 5487|回复: 7

[求助] 正则表达式_去除字母中的点但保留数字中间的小数点

1

主题

4

帖子

4

积分

贫民

积分
4
V-维 发表于 2020-3-24 04:18:43 | 显示全部楼层 |阅读模式
2威望
新手求助 : NLP的项目,数据很脏,有很多缩写和特殊符号,在清理数据时想清除 1,字母中间的点( 左右两边都是字母)  AA.BB
2,  左边字母,右边数字,或左边数字,右边字母,AA.13  / 13.AA
3.  只有两边都是数字的情况,保留小数点  13.45

谢谢了!

最佳答案

查看完整内容

试试这个: '(?
回复

使用道具 举报

0

主题

10

帖子

10

积分

贫民

积分
10
rrrr336 发表于 2020-3-24 04:18:44 | 显示全部楼层
试试这个:  
'(?<=[a-zA-Z])\.|\.(?=[a-zA-Z])'

测试:
import re
s = 'AB.12 ab.cd 23.ED 13.24 SF.45 34.56'
pattern1 = re.compile(r'(?<=[a-zA-Z])\.|\.(?=[a-zA-Z])')
m = re.sub(pattern1, '', s)
print(m)

输出为:
AB12 abcd 23ED 13.24 SF45 34.56
满足你的要求
回复

使用道具 举报

0

主题

2

帖子

2

积分

贫民

积分
2
weijiangwei 发表于 2020-3-24 21:25:09 来自手机 | 显示全部楼层
自己可以搞定吧
回复

使用道具 举报

0

主题

34

帖子

34

积分

贫民

积分
34
一叶落而知秋 发表于 2020-3-25 08:49:16 | 显示全部楼层
这个很简单啊
回复

使用道具 举报

1

主题

4

帖子

4

积分

贫民

积分
4
V-维  楼主| 发表于 2020-3-25 18:48:00 | 显示全部楼层

嗯,我也知道不难,但就是没有达到想要的效果 实习生新手, 求指点
回复

使用道具 举报

1

主题

4

帖子

4

积分

贫民

积分
4
V-维  楼主| 发表于 2020-3-25 19:14:33 | 显示全部楼层

之前没学过正则表达式。。。 求指点
回复

使用道具 举报

0

主题

956

帖子

956

积分

圣骑士

积分
956
sheeboard 发表于 2020-3-26 12:15:03 | 显示全部楼层
本帖最后由 sheeboard 于 2020-3-26 12:17 编辑

a=['AA.BB','AA.13 / 13.AA','13.45']

for el in a:
    try:
        if float(el):
           print(el)
    except:
            print(el.replace('.',' '))
回复

使用道具 举报

1

主题

4

帖子

4

积分

贫民

积分
4
V-维  楼主| 发表于 2020-5-31 17:31:14 | 显示全部楼层
rrrr336 发表于 2020-3-24 04:18
试试这个:  
'(?

谢谢,可行的
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表