python

您所在的位置:网站首页 使用函数删除字符串中的字符 python

python

2023-08-16 12:11| 来源: 网络整理| 查看: 265

文章目录 引言1.使用re.sub()函数2.isalpha()+isnumeric()+join()

引言

  leetcode刷题中碰到了如下问题: 在这里插入图片描述 在一个含有","":"等字符的字符串中只考虑字母与数字字符,那么理所当然需要只保留字母与数字字符,其他的删除

1.使用re.sub()函数

更多正则化知识见这个网址   Python 的re模块提供了re.sub用于替换字符串中的匹配项 语法:

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

参数:

pattern : 正则中的模式字符串。 repl : 替换的字符串,也可为一个函数。 string : 要被查找替换的原始字符串。 count : 模式匹配后替换的最大次数,默认 0 表示替换所有的匹配。 flags : 编译时用的匹配模式,数字形式。 前三个为必选参数,后两个为可选参数。

import re s = "A man, a plan, a canal: Panama" s = s.lower() result = re.sub('[\W_]+', '', s) print(result) # amanaplanacanalpanama

是不是很神奇? 它利用了正则表达式模式语法中的特殊元素。

[…] 用来表示一组字符,单独列出:[amk] 匹配 ‘a’,‘m’或’k’ [^…] 不在[]中的字符:[^abc] 匹配除了a,b,c之外的字符。 re* 匹配0个或多个的表达式。 re+ 匹配1个或多个的表达式。 re? 匹配0个或1个由前面的正则表达式定义的片段,非贪婪方式 \w 匹配数字字母下划线 \W 匹配非数字字母下划线

所以,[\W_]+代表着匹配一个或多个非数字字母, 如果,我们将[\W_]+变成[\w_]+,那么就代表着匹配一个或多个数字字母

import re s = "A man, a plan, a canal: Panama" s = s.lower() result = re.sub('[\w_]+', '', s) print(result) # , , : 2.isalpha()+isnumeric()+join()

  该方法利用了字符串的内置方法isalpha(),isnumeric(),通过迭代字符串中的每一个元素并结合join方法(join()方法用于将序列中的元素以指定的字符连接生成一个新的字符串)。

s = "A man, a plan, a canal: Panama" s = s.lower() # 去掉除字符串与数字外的其他 s = [i for i in s if i.isalpha() or i.isnumeric()] s = "".join(s) print(s) # amanaplanacanalpanama

同样也可以只删除字母与数字

s = "A man, a plan, a canal: Panama" s = s.lower() # 去掉除字符串与数字外的其他 s = [i for i in s if not i.isalpha() and not i.isnumeric()] s = "".join(s) print(s) # , , :

如果对您有帮助,麻烦点赞关注,这真的对我很重要!!!如果需要互关,请评论留言! 在这里插入图片描述



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3