python字符串如何去掉英文字母以外的字符

如题所述

可以利用正则表达式来去除

既然说到了字符串的操作,那么就目前而言是没有别的方法会比正则表达式更加方便的:

正则表达式中代表非字母的写法如下:

[^a-zA-Z]

#code:

#out:

拓展内容

其实除了正则表达式来截取外,python中String也提供了方法来判断字符是否为字母字符:

isalpha()方法 判断当前索引的字符是否为字母返回布尔类型

#code:

#out:

其实上述利用isalpha()的写法还可以简写一点,可以利用python可以把表达式当成参数的写法来:

#code:

表达式返回的为一个字符列表,这里使用join方法把空字符加入到字符列表中组成了一个新的字符串返回。

#out:

温馨提示:答案为网友推荐,仅供参考
第1个回答  2021-04-07
Python易混淆知识系列:Pandas字符串方法和字符串内建函数,使用Python的一个优势就是字符串处理起来比较容易。
Python的初学者在学习字符串内建函数的时候往往会很困惑:字符串的内建函数是对单个字符串对象处理,如果要对成千上万个字符串对象处理该怎么办?
不少已经使用Python工作很长时间的同学,即使已经学会使用Pandas对象的.apply()方法来处理字符串,依然会时常忘记:其实Pandas已经自带功能强大的向量化字符串操作。
即使知道Pandas字符串方法的同学,使用的时候也经常与字符串内建函数混淆。
而熟练使用Pandas字符串方法的同学往往会觉得,其方法的代码简洁性与运行效率都远高于其他的写法。真相到底如何?Pandas字符串方法和字符串内建函数有什么不同?运算效率真的像传闻那么高吗?
今天我们就好好捋一下这块Python易混淆的知识点。
1. 快速入门向量化字符串操作
初学Python字符串内建函数的同学肯定知道有个叫.lower()的方法可以将字符串中的大写英文字母转化为小写,比如将字符串对象’ABCD’转化为小写:

如果字符型的Series对象中的字符串要转化为小写呢?比如:

点击添加图片描述(最多60个字)
编辑
此时,我们就可以使用Series的str方法中的.lower()来处理:

点击添加图片描述(最多60个字)
编辑
同理,如果要将Series对象中的所有的大写字母变成小写,可以使用.str.upper()。
看到这里,相信很多没有使用过Pandas字符串方法的同学会惊奇地发现,这跟字符串对象的内建函数差不多呀?只不过多了一个通过.str()方法调用函数的过程。
确实,大多数Pandas的字符串方法借鉴了Python字符串内建函数的内容,。
第2个回答  2021-04-08
字符串操作是日常编码和Web开发中非常重要的任务;例如:HTTP查询中的大多数请求和响应都是字符串形式,有时我们需要删除一些无用的数据。下面本篇文章就来给大家介绍一些Python方法来将指定字符串中除字母和数字之外的所有字符都删除,希望对大家有所帮助。

方法一:使用re.sub()函数

在Python中正则表达式的功能是很强大的,而re.sub()函数就是Python中的正则替换字符串。re.sub()函数可以使用正则匹配要替换的字符串,进而将匹配的字符串替换成别的字符串。

语法:
re.sub(pattern , repl , string , count = 0 , flags = 0)

此函数中的“sub”代表子字符串(SubString),在给定的字符串(第3个参数)中搜索特定的正则表达式模式(第1个参数),找到后用repl(第2个参数)中的替换子字符串模式进行替换,计数检查并保持出现这种情况的次数。

代码示例:
在这里插入图片描述
输出:
在这里插入图片描述

方法二:使用isalpha()+isnumeric()+join()方法

isalpha()方法是Python的一种用于字符串处理的内置方法,可以检查字符串是否只由字母组成。如果字符串中的所有字符都是字母,则返回“True”,否则返回“False”。

isnumeric()方法是Python的一种用于字符串处理的内置方法,可以检查字符串是否只由数字组成。如果字符串中的所有字符都是数字字符,则返回“True”,否则返回“False”。

join()方法用于将序列中的元素以指定的字符连接生成一个新的字符串
第3个回答  2021-04-07
字符串操作是日常编码和Web开发中非常重要的任务;例如:HTTP查询中的大多数请求和响应都是字符串形式,有时我们需要删除一些无用的数据。下面本篇文章就来给大家介绍一些Python方法来将指定字符串中除字母和数字之外的所有字符都删除,希望对大家有所帮助。

方法一:使用re.sub()函数

在Python中正则表达式的功能是很强大的,而re.sub()函数就是Python中的正则替换字符串。re.sub()函数可以使用正则匹配要替换的字符串,进而将匹配的字符串替换成别的字符串。

语法:
re.sub(pattern , repl , string , count = 0 , flags = 0)

此函数中的“sub”代表子字符串(SubString),在给定的字符串(第3个参数)中搜索特定的正则表达式模式(第1个参数),找到后用repl(第2个参数)中的替换子字符串模式进行替换,计数检查并保持出现这种情况的次数。
第4个回答  2015-07-23

去掉字符串中字母以外的字符,在Python编程语言中有多种实现方式。

Python中的str类型,有一个isalpha()方法,判断字符是否是英文字符。可以使用循环逐个字符判断是否是英文字符,如果是英文字符则加入新的字符串。

oldS = 'as30wejl2@2]sjls'
newS = ''
for s in oldS:
    if s.isalpha():
        newS += s
print newS

以上代码可以使用表理解浓缩成一行,表理解返回的结果是一个list,因此需要用空字符串''连接。

print ''.join([x for x in oldS if x.isalpha()])

上面的实现方式可以完成任务,但仍然不够凝练。最佳的实现方式是使用正则表达式匹配非英文字母,将其替换成空字符,这可以使用re包的sub()函数实现。

import re
print re.sub('[^a-zA-Z]','',oldS)

上述正则表达式[^a-zA-Z],就是用于匹配非英文字符。

相似回答