Python简单过滤字母和数字的方法小结

本文实例讲述了Python简单过滤字母和数字的方法。分享给大家供大家参考,具体如下:

实例1

crazystring = 'dade142.!0142f[., ]ad'
# 只保留数字
new_crazy = filter(str.isdigit, crazystring)
print(''.join(list(new_crazy))) #输出:1420142
# 只保留字母
new_crazy = filter(str.isalpha, crazystring)
print(''.join(list(new_crazy))) #睡出:dadefad
# 只保留字母和数字
new_crazy = filter(str.isalnum, crazystring)
print(''.join(list(new_crazy))) #输出:dade1420142fad
# 如果想保留数字0-9和小数点'.' 则需要自定义函数
new_crazy = filter(lambda ch: ch in '0123456789.', crazystring)
print(''.join(list(new_crazy))) #输出:142.0142.

上述代码运行结果:

1420142
dadefad
dade1420142fad
142.0142.

实例 2

1.正则表达式

import re
L = ['小明', 'xiaohong', '12', 'adf12', '14']
for i in range(len(L)):
  if re.findall(r'^[^\d]\w+', L[i]):
    print(re.findall(r'^\w+$', L[i])[0])
避开正则表达式
L = ['xiaohong', '12', 'adf12', '14', '晓明']
for x in L:
  try:
    int(x)
  except:
    print(x)

使用string内置方法

L = ['xiaohong', '12', 'adf12', '14', '晓明']
# 对于python3来说同样还可以使用string.isnumeric()方法
for x in L:
  if not x.isdigit():
    print(x)
# for x in L:
#   if not x.isnumeric():
#     print(x)

运行输出:

xiaohong
adf12
晓明

实例 3

要进行中文分词,必须要求数据格式全部都是中文,需求过滤掉特殊符号、标点、英文、数字等。当然了用户可以根据自己的要求过滤自定义字符。

import re
x = 'a12121assa'
x = '1我们1'
r1 = '[a-zA-Z0-9'!"#$%&\'()*+,-./:;<=>?@,。?★、…【】《》?“”‘'![\\]^_`{|}~]+'
print(re.sub(r1, '', x))

运行结果:

我们

参考:https://www.jb51.net/article/154317.htm

PS:这里再为大家提供2款非常方便的正则表达式工具供大家参考使用:

JavaScript正则表达式在线测试工具:
http://tools.jb51.net/regex/javascript

正则表达式在线生成工具:
http://tools.jb51.net/regex/create_reg

更多关于Python相关内容可查看本站专题:《Python正则表达式用法总结》、《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总》

希望本文所述对大家Python程序设计有所帮助。

(0)

相关推荐

  • python3去掉string中的标点符号方法

    网上看到的python去掉字符串中的标点符号的方法,大多是基于python2的,不适用python3,调整后代码如下: 代码 lower_case_documents = ['Hello, how are you!','Win money, win from home.','Call me now.','Hello, Call hello you tomorrow?'] sans_punctuation_documents = [] import string for i in lower_ca

  • Python实现简单过滤文本段的方法

    本文实例讲述了Python实现简单过滤文本段的方法.分享给大家供大家参考,具体如下: 一.问题: 如下文本: ## Alignment 0: score=397.0 e_value=8.2e-18 N=9 scaffold1&scaffold106 minus 0- 0: 10026549 10007782 2e-75 0- 1: 10026550 10007781 8e-150 0- 2: 10026552 10007780 1e-116 0- 3: 10026555 10007778 0 0

  • Python数组条件过滤filter函数使用示例

    使用filter函数,实现一个条件判断函数即可. 比如想过滤掉字符串数组中某个敏感词,示范代码如下: #filter out some unwanted tags def passed(item): try: return item != "techbrood" #can be more a complicated condition here except ValueError: return False org_words = [["this","is

  • python过滤中英文标点符号的实例代码

    如下所示: import re # 过滤不了\\ \ 中文()还有---- r1 = u'[a-zA-Z0-9'!"#$%&\'()*+,-./:;<=>?@,.?★.-[]<>?""''![\\]^_`{|}~]+'#用户也可以在此进行自定义过滤字符 # 者中规则也过滤不完全 r2 = "[\s+\.\!\/_,$%^*(+\"\']+|[+--!,.?.~@#¥%--&*()]+" # \\\可以过滤掉

  • Python简单过滤字母和数字的方法小结

    本文实例讲述了Python简单过滤字母和数字的方法.分享给大家供大家参考,具体如下: 实例1 crazystring = 'dade142.!0142f[., ]ad' # 只保留数字 new_crazy = filter(str.isdigit, crazystring) print(''.join(list(new_crazy))) #输出:1420142 # 只保留字母 new_crazy = filter(str.isalpha, crazystring) print(''.join(l

  • python正则过滤字母、中文、数字及特殊字符方法详解

    去除数字,特殊字符,只保留汉字 import re s = '1123*#$ 中abc国' str = re.sub('[a-zA-Z0-9'!"#$%&\'()*+,-./:;<=>?@,.?★.-[]<>?""''![\\]^_`{|}~\s]+', "", s) # 去除不可见字符 str = re.sub('[\001\002\003\004\005\006\007\x08\x09\x0a\x0b\x0c\x0d\x

  • Python中列表元素转为数字的方法分析

    本文实例讲述了Python中列表元素转为数字的方法.分享给大家供大家参考,具体如下: 有一个数字字符的列表: numbers = ['1', '5', '10', '8'] 想要把每个元素转换为数字: numbers = [1, 5, 10, 8] 用一个循环来解决: new_numbers = []; for n in numbers: new_numbers.append(int(n)); numbers = new_numbers; 有没有更简单的语句可以做到呢? 1. numbers =

  • Python简单生成8位随机密码的方法

    本文实例讲述了Python简单生成8位随机密码的方法.分享给大家供大家参考,具体如下: #!/usr/bin/env python # -*- coding: utf-8 -*- import random import string #第一种方法 seed = "1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!@#$%^&*()_+=-" sa = [] for i in range(8): sa.

  • js中使用正则表达式查找字母和数字的方法

    废话不多说,先看下js中使用正则查找字母和数字的方法,具体代码如下所示: <!DOCTYPE HTML> <html > <head> <meta charset="UTF-8"> <title></title> <script type="text/javascript"> window.onload=function(){ localStorage.fiveData="

  • python判断字符串是否纯数字的方法

    本文实例讲述了python判断字符串是否纯数字的方法.分享给大家供大家参考.具体如下: 判断的代码如下,通过异常判断不能区分前面带正负号的区别,正则表达式可以根据自己需要比较灵活的写,通过isdigit方法用来判断是否是纯数字,测试代码如下 复制代码 代码如下: #!/usr/bin/python # -*- coding: utf-8 -*- a = "1" b = "1.2" c = "a" #通过抛出异常 def is_num_by_exc

  • python简单获取数组元素个数的方法

    本文实例讲述了python简单获取数组元素个数的方法.分享给大家供大家参考.具体如下: 复制代码 代码如下: mySeq = [1,2,3,4,5]  print len(mySeq) 运行结果如下: 5 希望本文所述对大家的Python程序设计有所帮助.

  • python字符串过滤性能比较5种方法

    python字符串过滤性能比较5种方法比较 总共比较5种方法.直接看代码: import random import time import os import string base = string.digits+string.punctuation total = 100000 def loop(ss): """循环""" rt = '' for c in ss: if c in '0123456789': rt = rt + c retu

  • Python简单计算文件夹大小的方法

    本文实例讲述了Python简单计算文件夹大小的方法.分享给大家供大家参考.具体如下: import os, re """ 查看文件夹下的所有文件及文件夹 join为拼接函数 """ def Look_File(path): for root , dirs, files in os.walk(path, True): print root #主目录 for item in files: #主目录下的文件夹 print os.path.join(ro

  • Python随机生成手机号、数字的方法详解

    本文实例讲述了Python随机生成手机号.数字的方法.分享给大家供大家参考,具体如下: Python随机产生手机号.数字.代码如下: # -*- coding:gbk -*- import random #随机产生26个手机号:以13开头,后面跟一位4~9之间的任意一位数字,后面是8位随机数字 for _ in range(26): print('13' + str(random.randrange(4,10))+ ''.join( str(random.choice(range(10))) f

随机推荐