文章目录

  • 引言
  • 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 res = "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 res = "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)
#   ,  ,  :

如果对您有帮助,麻烦点赞关注,这真的对我很重要!!!如果需要互关,请评论留言!


python—如何删除(保留)字符串中除字母、数字外的其他元素相关推荐

  1. python 正则之提取字符串中的汉字,数字,字母

    python 正则之提取字符串中的汉字,数字,字母 #\d 匹配一个数字字符.等价于 [0-9] #\D 匹配一个非数字字符.等价于 [^0-9]#过滤字符串中的英文与符号,保留汉字 import r ...

  2. python电话号码对应的字符组合_Python3 在字符串中提取字母+数字组合微信账号、电话等 - pytorch中文网...

    今天处理数据要提取字符串中的微信,字符串中包含中文英文Emoji,标点符号等. python 提取字符串中的电话 提取电话相对简单,多个电话也可以提取 import re desstr = " ...

  3. python使用正则表达式抽取字符串中最大数值数字

    python使用正则表达式抽取字符串中最大数值数字 #python使用正则表达式抽取字符串中最大数值数字 # Function to extract maximum numeric value fro ...

  4. Python:如何从字符串中提取字母或数字?

    从字符串中提取字母 s = 'cn中国520' print(''.join([i for i in s if i.encode('UTF-8').isalpha()]))# 输出:cn 注意:中文的汉 ...

  5. [转载] java提取字符串中的字母数字

    参考链接: 使用Regex检查字符串在Java中是否仅包含字母 String str = "adsf    adS DFASFSADF阿德斯防守对方asdfsadf37<?:?@%#¥ ...

  6. java提取字符串中字母_java截取字符串中的字母数字

    import java.util.regex.Matcher; import java.util.regex.Pattern; public class Cut { // 1. 正则表达式 // 利用 ...

  7. php 取字符串中的字母数字,php如何提取字符串中的数字?php提取字符串中数字的方法总结(附代码)...

    本篇文章给大家带来的内容是关于php如何提取字符串中的数字?php提取字符串中数字的方法总结(附代码) ,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. PHP提取字符串中的第一组数字 ...

  8. python正则判断纯数字_Python 正则表达式匹配数字及字符串中的纯数字,

    Python 正则表达式匹配数字及字符串中的纯数字, Python 正则表达式匹配数字 电话号码:\d{3}-\d{8}|\d{4}-\d{7} QQ号:[1-9][0-9]{4,} 中国邮政编码:[ ...

  9. 从Python字符串中剥离字母数字字符以外的所有内容

    本文翻译自:Stripping everything but alphanumeric chars from a string in Python What is the best way to st ...

  10. c语言滤去所有非数字字符,Python: 去掉字符串中的非数字(或非字母)字符

    >>> crazystring = 'dade142.;!0142f[.,]ad' 只保留数字 >>> filter(str.isdigit, crazystrin ...

最新文章

  1. Python3 MySQL 数据库连接 - PyMySQL 驱动
  2. 电商那些年,我摸爬打滚出的高并发架构实战精髓(续)
  3. 强化学习note2——value iteration和policy iteration的区别,MC和TD的区别
  4. python入门--函数
  5. 数据挖掘—Apriori算法(Java实现)
  6. e3是合法浮点数吗_下面4个选项中,均是合法浮点数的选项是?
  7. 适用于Photoshop的人像美容磨皮ps插件:Beauty Retouch Panel 2021 Mac
  8. wordpress所属权限改为nginx_linux运维之logrotate日志轮替——对nginx日志进行轮替-linux运维...
  9. ssms应用程序错误_来自应用程序的查询计划与SSMS不同时的性能故障排除
  10. TCP/IP模型的简单解释
  11. 统计挖掘那些事(七)—— 如何直观地理解过拟合与欠拟合那些事~
  12. c语言memset函数作用,详解C语言中的memset()函数
  13. 得到jar包运行时所在的目录
  14. ubuntu 版mysql客户端工具_MySQL GUI工具
  15. 51单片机两只老虎 c语言,基于51单片机的简易电子琴(两只老虎)
  16. Redis数据结构之——跳表skiplist
  17. javascript交互性设计
  18. C++ 检索 IP地址
  19. opencore黑苹果教程
  20. MaxEnt软件的安装

热门文章

  1. ubuntu 下一个神奇的命令--以窗口形式打开某个文件夹
  2. 面试题 05.08. 绘制直线【位运算】
  3. 京东、宅急送的微服务实践分享(下)| 架构师小组交流会
  4. java与js的split方法
  5. 100万个不重复的8位的随机数
  6. 如何做web程序权限管理
  7. Linux操作系统中ps命令常见用法
  8. html-webpack-template, 一个更好的html web service插件
  9. 杭电1081_二维dp
  10. 接口与继承:不允许继承的类