使用python怎么提取字符串的中英文
本篇文章为大家展示了使用python怎么提取字符串的中英文,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。
一. re中的sub函数
使用Python 的re模块,re模块提供了re.sub用于替换字符串中的匹配项。
re.sub(pattern, repl, string, count=0)
参数说明:
pattern:正则重的模式字符串
repl:被拿来替换的字符串
string:要被用于替换的原始字符串
count:模式匹配后替换的最大次数,省略则默认为0,表示替换所有的匹配
1.1 提取中文
可以这样想:我们可以通过将不是中文的字符替换为空不就可以了
例如
import restr = "重出江湖hello的地H方。。的,world"str = re.sub("[A-Za-z0-9\,\。]", "", str)print(str)输出:神的孩子在唱歌
1.2 提取英文
import restr = "重123出江湖hello的地H方。。的,world"str = re.sub("[\u4e00-\u9fa5\0-9\,\。]", "", str)print(str)输出:helloHworld
1.3 提取数字
import restr = "重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
匹配所有,具体了解可以到菜鸟教程查看
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-zimport redd = "重出123江湖hello的地方的,world"result = ''.join(re.findall(r'[A-Za-z]', dd)) print(result)输出:helloHworld
2.3 提取数字
#0-9注意这个数字前面不能\,要不然他连,都给算上import redd = "神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主要应用于:1、Web开发;2、数据科学研究;3、网络爬虫;4、嵌入式应用开发;5、游戏开发;6、桌面应用开发。
上述内容就是使用python怎么提取字符串的中英文,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注编程网行业资讯频道。
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341