【前言】在写爬虫时,正则表达式有时候比较难写,一个是自己不熟练,二者数据分析提取数据千奇百怪。

 一、好在python有个re模块,提供了很多更加简便的方法;可参考此文档:https://www.cnblogs.com/tina-python/p/5508402.html

 二、但有时候,不能实现过滤抽取的功能,python提供了filter函数。 可参考:  http://www.runoob.com/python/python-func-filter.html

具体的应用:

 1 crazystring = 'dade142.!0142f[., ]ad'
 2
 3 # 只保留数字,使用内置方法str.isdigit
 4 new_crazy = filter(str.isdigit, crazystring)
 5 print(''.join(list(new_crazy)))
 6 # 只保留字母
 7 new_crazy = filter(str.isalpha, crazystring)
 8 print(''.join(list(new_crazy)))
 9
10
11 # 只保留字母和数字
12 new_crazy = filter(str.isalnum, crazystring)
13 print(''.join(list(new_crazy)))
14
15 # 如果想保留数字0-9和小数点’.’ 则需要自定义函数
16 #下面使用lambda表达式,方便快捷
17 new_crazy = filter(lambda ch: ch in '0123456789.', crazystring)
18 print(''.join(list(new_crazy)))

其中的str.isdigit是其内置方法。

我们也可以自己定义规则,不如只过滤出奇数:

#!/usr/bin/python
# -*- coding: UTF-8 -*-def is_odd(n):return n % 2 == 1newlist = filter(is_odd, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
print(newlist)

定义函数时,可以使用lambda表达式,这样会更加方便。

三、我的具体应用场景

  在写爬虫分析验证码时,用腾讯云分析回的json文件,提取验证码时用到正则匹配。一直找python的正则表达式,不好找也不好写。

1、对传回的json数据,做一个正则提取:

r_index = r'itemstring":"(.*?)"'  

2、然儿,提取的二维码总会有噪声,(.*?)是将所有数据都提取出来了。但是,我们深度学习识别出来的二维码有噪声,会有‘\'、‘_’、或者空格。需要二次处理。目标是提取数字和字母,不含有任何空格和噪声。使用"\W+",会有下划线。我们使用:

#接在上面的语句后面,进一步过滤
new_index = filter(str.isalnum, r_index)

3、最终可以实现百分之九十准确率。当然离不开深度学习算法对数字识别率高。

转载于:https://www.cnblogs.com/huangfuyuan/p/9318825.html

Python 过滤字母和数字相关推荐

  1. python筛选数字_Python简单过滤字母和数字的方法小结

    本文实例讲述了Python简单过滤字母和数字的方法.分享给大家供大家参考,具体如下: 实例1 crazystring = 'dade142.!0142f[., ]ad' # 只保留数字 new_cra ...

  2. python数字及字母的分离_Python简单过滤字母和数字的方法小结

    本文实例讲述了Python简单过滤字母和数字的方法.分享给大家供大家参考,具体如下: 实例1 crazystring = 'dade142.!0142f[., ]ad' # 只保留数字 new_cra ...

  3. python 把字母转数字

    python把字母转数字,其实这样说是不对的,应该说是python 把字符转数字, 就是把字符转成对应的ASCII (American Standard Code for Information In ...

  4. python数字形式转换_在Python中将字母转换为数字

    在Python中将字母转换为数字 如何完成以下步骤? characters = ['a''b''c''d''e''f''g''h''i''j''k''l''m''n''o''p''q''r''t''u ...

  5. java 过滤中文_Java 过滤字母、数字和中文 正则表达式

    [java]代码库/** * @Title:FilterStr.java * @Package:com.you.dao * @Description:Java中过滤数字.字母和中文 * @Author ...

  6. 正则匹配过滤字母和数字

    /*** 描述:过滤特殊字符.字母和数字* @param str* @return* @throws PatternSyntaxException*/public static String Stri ...

  7. python字母变成数字怎么办_在Python中将字母转换为数字

    14 个答案: 答案 0 :(得分:71) 这样的事情: print [ord(char) - 96 for char in raw_input('Write Text: ').lower()] 修改 ...

  8. Java正则表达式过滤出字母、数字和中文

    Java中过滤出字母.数字和中文的正则表达式 过滤出字母的正则表达式 [^(A-Za-z)] 过滤出 数字 的正则表达式 [^(0-9)] 过滤出 中文 的正则表达式 [^(\\u4e00-\\u9f ...

  9. python统计字母空格个数_python统计字母、空格、数字等字符个数的实例

    如下所示: # -*- coding: utf-8 -*- # 要求:输入一行字符,分别统计出其中英文字母.空格.数字和其它字符的个数. def count(s): count_a=count_z=c ...

最新文章

  1. Extjs遇到的一些问题
  2. B-树和B+树的应用:数据搜索和数据库索引
  3. 网络层访问权限控制技术-ACL详解 (2)
  4. 计算机网络技术基础教学内容,计算机网络技术基础
  5. Spring Cloud CLI简介
  6. 【免费毕设】基于PHP的产品报价系统的设计与开发(源代码+论文)
  7. oracle日期时间
  8. office 公式编辑器 插入花体格式字母
  9. java基于ssm的农产品网上销售系统
  10. HTML5与Flash相比有哪些好处?
  11. 谷歌创建新账号时手机号码无法验证
  12. python爬虫爬取中央气象台每日天气图
  13. uniapp全端应用商城系统,应用市场APP,软件库APP,葫芦芥子博客
  14. 【云IDE】取次花丛懒回顾
  15. keytool 错误: java.io.IOException: Keystore was tampered with, or password was incorrect----gt;解决方法
  16. 测试智商多高的软件,测测你的智商多高 国际标准智商测试30题
  17. UG NX二次开发(C#)-曲线-NXOpen.Curve初探
  18. 阿里资深专家杭特:十余年目睹国内安全之“怪现状 ”
  19. 无须注册的云盘平台anonfile
  20. Linux 文件内容查看

热门文章

  1. Ansible Playbook核心元素以及组件
  2. hdfs oiv命令查看FsImage镜像文件内容
  3. 有没有高效的记视频笔记方法?--天若OCR文字识别记视频笔记
  4. Rust:集所有语言之大成者
  5. scala集合常用方法:foldRight
  6. cpu的基本硬件组成
  7. Linux软件安装的几种常见方式介绍
  8. VMware快照管理器
  9. 查看systemctl或service启动服务日志
  10. 从源码角度看Android系统Zygote进程启动过程