如何使用python提取字符串的中英文(正则判断)

 更新时间:2021年05月13日 14:38:23   作者:神的孩子都在歌唱  
这篇文章主要给大家介绍了关于如何使用python提取字符串中英文的相关资料,主要通过正则re中的sub函数、findall函数以及compile函数判断来实现,需要的朋友可以参考下

前言

提取中英文是我们在做数据处理时候经常使用的,最高效的做法就是通过正则判断了,下面是我写的笔记,希望对你有用

一. re中的sub函数

使用Python 的re模块,re模块提供了re.sub用于替换字符串中的匹配项。

re.sub(pattern, repl, string, count=0)

参数说明:

  • pattern:正则重的模式字符串
  • repl:被拿来替换的字符串
  • string:要被用于替换的原始字符串
  • count:模式匹配后替换的最大次数,省略则默认为0,表示替换所有的匹配

1.1 提取中文

可以这样想:我们可以通过将不是中文的字符替换为空不就可以了

例如

import re
str = "重出江湖hello的地H方。。的,world"
str = re.sub("[A-Za-z0-9\,\。]", "", str)
print(str)
输出:神的孩子在唱歌

1.2 提取英文

import re
str = "重123出江湖hello的地H方。。的,world"
str = re.sub("[\u4e00-\u9fa5\0-9\,\。]", "", str)
print(str)
输出:helloHworld

1.3 提取数字

import re
str = "重123出江湖hello的地H方。。的,world"
str = re.sub("[A-Za-z\u4e00-\u9fa5\,\。]", "", str)
print(str)
输出:123

二. re中的findall函数

在字符串中找到正则表达式所匹配的所有子串,并返回一个列表,如果没有找到匹配的,则返回空列表。

语法格式为:

findall(string[, pos[, endpos]])

参数:

  • string : 待匹配的字符串。
  • pos : 可选参数,指定字符串的起始位置,默认为 0。
  • endpos :可选参数,指定字符串的结束位置,默认为字符串的长度。 查找字符串中的所有数字:

扩展:正则中有match 和 search ,它们是是匹配一次,findall

匹配所有,具体了解可以到菜鸟教程查看

2.1 提取中文

2.2 提取英文

通俗写法

import string#提供a-z的小写字母
dd = "神的孩子hello在H唱歌,world"
#准备英文字符
temp=""
letters=string.ascii_lowercase#包含a-z的小写字母
for word in dd:#for循环取出单个词
    if word.lower() in letters:#判断是否是英文
        temp+=word#添加组成英文单词
print(temp)
输出:helloHworld

正则

#A-Za-z
import re
dd = "重出123江湖hello的地方的,world"
result = ''.join(re.findall(r'[A-Za-z]', dd)) 
print(result)
输出:helloHworld

2.3 提取数字

#0-9注意这个数字前面不能\,要不然他连,都给算上
import re
dd = "神123的孩子hello在唱H歌。。,world"
result = ''.join(re.findall(r'[0-9]', dd)) 
print(result)
输出:123

三. re中的compile函数

compile函数用于编译正则表达式,生成一个正则表达式( Pattern )对象,供其他函数使用。

语法格式为:

re.compile(pattern[, flags])

参数:

pattern : 一个字符串形式的正则表达式

flags : 可选,表示匹配模式,比如忽略大小写,多行模式等,具体参数为:

  • re.I 忽略大小写
  • re.L 表示特殊字符集 \w, \W, \b, \B, \s, \S 依赖于当前环境
  • re.M 多行模式
  • re.S即为 . 并且包括换行符在内的任意字符(. 不包括换行符)
  • re.U 表示特殊字符集 \w, \W, \b, \B, \d, \D, \s,\S 依赖于 Unicode 字符属性数据库
  • re.X 为了增加可读性,忽略空格和 # 后面的注释

3.1 同时匹配中英文数字去除其他字符

总结

到此这篇关于如何使用python提取字符串中英文的文章就介绍到这了,更多相关python提取字符串中英文内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • keras建模的3种方式详解

    keras建模的3种方式详解

    这篇文章主要介绍了keras建模的3种方式详解,keras是Google公司于2016年发布的以tensorflow为后端的用于深度学习网络训练的高阶API,因接口设计非常人性化,深受程序员的喜爱,需要的朋友可以参考下
    2023-08-08
  • Python温度转换实例分析

    Python温度转换实例分析

    这篇文章主要介绍了Python温度转换实例分析,具有一定借鉴价值,需要的朋友可以参考下
    2018-01-01
  • python实现用于测试网站访问速率的方法

    python实现用于测试网站访问速率的方法

    这篇文章主要介绍了python实现用于测试网站访问速率的方法,涉及Python中urllib2模块及时间的相关操作技巧,需要的朋友可以参考下
    2015-05-05
  • Python自动重新加载模块详解(autoreload module)

    Python自动重新加载模块详解(autoreload module)

    这篇文章主要介绍了Python自动重新加载模块详解(autoreload module),具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-04-04
  • 如何用python处理excel表格

    如何用python处理excel表格

    在本篇文章里小编给大家整理了关于python处理excel表格的详细步骤内容,需要的朋友们可以参考下。
    2020-06-06
  • Python3实现从排序数组中删除重复项算法分析

    Python3实现从排序数组中删除重复项算法分析

    这篇文章主要介绍了Python3实现从排序数组中删除重复项算法,结合3个完整实例形式分析了Python3针对排序数组的遍历、去重、长度计算等相关操作技巧,需要的朋友可以参考下
    2019-04-04
  • python3 shelve模块的详解

    python3 shelve模块的详解

    这篇文章主要介绍了python3 shelve模块的详解的相关资料,需要的朋友可以参考下
    2017-07-07
  • Python类的动态绑定实现原理

    Python类的动态绑定实现原理

    这篇文章主要介绍了Python类的动态绑定实现原理,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-03-03
  • python数据分析之如何删除value=0的行

    python数据分析之如何删除value=0的行

    这篇文章主要给大家介绍了关于python数据分析之如何删除value=0的行的相关资料,文中通过实例代码以及图文介绍的非常详细,对大家学习或者使用Python具有一定的参考学习价值,需要的朋友可以参考下
    2022-12-12
  • Python3实现发送QQ邮件功能(文本)

    Python3实现发送QQ邮件功能(文本)

    这篇文章主要为大家详细介绍了Python3实现发送QQ邮件功能,文本方面,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-12-12

最新评论