微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何从正则表达式中提取值的范围

如何解决如何从正则表达式中提取值的范围

我想从熊猫系列中提取所有字母(A-Za-z)以及任何以 9 开​​头的字符串,例如 9mobile、9link 等。

1000                          pos ba ganiyu fatai og ogng 9moble
1001                          99 ct justrite limited(ota) la lang
1002                          9link qt pymt airtime recharge 
1003                          qt pymt airtime recharge 56

9 只应在字符串的开头出现零次或一次。

我想出了这个正则表达式模式 [^A-Za-z\(A9?)],但它似乎没有提取出我真正想要的东西。

我也试过这个:

text = t.apply(lambda x: re.sub('[^A-Za-z\A9.?]+',' ',str(x)))

导致错误

我的预期输出是:

    1000                          pos ba ganiyu fatai og ogng 9moble
    1001                          ct justrite limited(ota) la lang
    1002                          9link qt pymt airtime recharge 
    1003                          qt pymt airtime recharge 

解决方法

如果我理解正确,您想提取任何字符串和任何以 9 作为第一个字符的内容。在这种情况下,试试这个正则表达式:

9{0,1}[a-zA-Z]+

所以它应该看起来像这样:

text = t.apply(lambda x: re.sub('9{0,1}[a-zA-Z]+',' ',str(x)))

编辑:

要仅从列表中删除数字,请使用:

\d+([^\w]|$)

这是做什么的,它匹配任何后面没有字符或后面跟着字符串结尾的数字,所以它不会匹配像“9link”这样的字符串。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。