当前位置: 首页 > news >正文

安康网站建设公司电话免费公司网站建站

安康网站建设公司电话,免费公司网站建站,wordpress主菜单,wordpress安一、前言 在字符串数据处理的过程中,正则表达式是我们经常使用到的,python中使用的则是re模块。下面会通过实际案例介绍 re.sub() 的详细用法,该函数主要用于替换字符串中的匹配项。 二、函数原型 首先从源代码来看一下该函数原型&#xf…

一、前言

在字符串数据处理的过程中,正则表达式是我们经常使用到的,python中使用的则是re模块。下面会通过实际案例介绍 re.sub() 的详细用法,该函数主要用于替换字符串中的匹配项

二、函数原型

首先从源代码来看一下该函数原型,包括各个参数及其意义:

	def sub(pattern, repl, string, count=0, flags=0):"""Return the string obtained by replacing the leftmostnon-overlapping occurrences of the pattern in string by thereplacement repl.  repl can be either a string or a callable;if a string, backslash escapes in it are processed.  If it isa callable, it's passed the match object and must returna replacement string to be used."""return _compile(pattern, flags).sub(repl, string, count)

从上面的代码中可以看到re.sub()方法中含有5个参数,下面进行一一说明(加粗的为必须参数):
(1)pattern:该参数表示正则中的模式字符串;
(2)repl:该参数表示要替换的字符串(即匹配到pattern后替换为repl),也可以是个函数;
(3)string:该参数表示要被处理(查找替换)的原始字符串;
(4)count:可选参数,表示是要替换的最大次数,而且必须是非负整数,该参数默认为0,即所有的匹配都会被替换;
(5)flags:可选参数,表示编译时用的匹配模式(如忽略大小写、多行模式等),数字形式,默认为0。

三、使用案例

下面将以一个字符串(包含大小写英文、数字、中英文标点、特殊符号等)作为示例进行使用案例讲解,该字符串如下:

>>> s = "大家好,我是一个程序员小白。I 'm so glad to introduce myself, and I’m 18 years old.   Today is 2020/01/01. It is a wonderful DAY! @HHHHello,,,#111ComeHere222...66?AA?zz?——http://welcome.cn"

1.匹配单个数字或字母

(1)只匹配单一数字

>>> import re>>> s"大家好,我是一个程序员小白。I 'm so glad to introduce myself, and I’m 18 years old.   Today is 2020/01/01. It is a wonderful DAY! @HHHHello,,,#111ComeHere222...66?AA?zz?——http://welcome.cn">>> re.sub(r'[0-9]', '*', s)"大家好,我是一个程序员小白。I 'm so glad to introduce myself, and I’m ** years old.   Today is ****/**/**. It is a wonderful DAY! @HHHHello,,,#***ComeHere***...**?AA?zz?——http://welcome.cn"

上面 re.sub(r'[0-9]', '*', s) 这句话则表示只匹配单一数字,并将每一个数字替换为一个星号 。

(2)只匹配单一字母

>>> s"大家好,我是一个程序员小白。I 'm so glad to introduce myself, and I’m 18 years old.   Today is 2020/01/01. It is a wonderful DAY! @HHHHello,,,#111ComeHere222...66?AA?zz?——http://welcome.cn">>> re.sub(r'[a-z]', '*', s)"大家好,我是一个程序员小白。I '* ** **** ** ********* ******, *** I’* 18 ***** ***.   T**** ** 2020/01/01. I* ** * ********* DAY! @HHHH****,,,#111C***H***222...66?AA?**?——****://*******.**">>> re.sub(r'[A-Z]', '*', s)"大家好,我是一个程序员小白。* 'm so glad to introduce myself, and *’m 18 years old.   *oday is 2020/01/01. *t is a wonderful ***! @****ello,,,#111*ome*ere222...66?**?zz?——http://welcome.cn">>> re.sub(r'[A-Za-z]', '*', s)"大家好,我是一个程序员小白。* '* ** **** ** ********* ******, *** *’* 18 ***** ***.   ***** ** 2020/01/01. ** ** * ********* ***! @********,,,#111********222...66?**?**?——****://*******.**"

上面 re.sub(r'[a-z]', '*', s) 这句话则表示只匹配单一小写字母,并将每一个小写字母替换为一个星号
上面 re.sub(r'[A-Z]', '*', s) 这句话则表示只匹配单一大写字母,并将每一个大写字母替换为一个星号 。
上面 re.sub(r'[A-Za-z]', '*', s) 这句话则表示只匹配单一字母,并将每一个字母替换为一个星号 。

 (3)匹配单一数字和字母

>>> s"大家好,我是一个程序员小白。I 'm so glad to introduce myself, and I’m 18 years old.   Today is 2020/01/01. It is a wonderful DAY! @HHHHello,,,#111ComeHere222...66?AA?zz?——http://welcome.cn">>> re.sub(r'[0-9A-Z]', '*', s)"大家好,我是一个程序员小白。* 'm so glad to introduce myself, and *’m ** years old.   *oday is ****/**/**. *t is a wonderful ***! @****ello,,,#****ome*ere***...**?**?zz?——http://welcome.cn">>> re.sub(r'[0-9a-z]', '*', s)"大家好,我是一个程序员小白。I '* ** **** ** ********* ******, *** I’* ** ***** ***.   T**** ** ****/**/**. I* ** * ********* DAY! @HHHH****,,,#***C***H******...**?AA?**?——****://*******.**">>> re.sub(r'[0-9A-Za-z]', '*', s)"大家好,我是一个程序员小白。* '* ** **** ** ********* ******, *** *’* ** ***** ***.   ***** ** ****/**/**. ** ** * ********* ***! @********,,,#**************...**?**?**?——****://*******.**"

上面 re.sub(r'[0-9A-Z]', '*', s) 这句话则表示只匹配单一数字和大写字母,并将每一个数字和大写字母替换为一个星号 。
上面 re.sub(r'[0-9a-z]', '*', s) 这句话则表示只匹配单一数字和小写字母,并将每一个数字和小写字母替换为一个星号 。
上面 re.sub(r'[0-9A-Za-z]', '*', s) 这句话则表示只匹配单一数字和字母,并将每一个数字和字母替换为一个星号 。

2.匹配多个数字或字母

注意:这里的所说的多个指的是大于等于一个。

(1)匹配多个数字

>>> s"大家好,我是一个程序员小白。I 'm so glad to introduce myself, and I’m 18 years old.   Today is 2020/01/01. It is a wonderful DAY! @HHHHello,,,#111ComeHere222...66?AA?zz?——http://welcome.cn">>> re.sub(r'[0-9]+', '*', s)"大家好,我是一个程序员小白。I 'm so glad to introduce myself, and I’m * years old.   Today is */*/*. It is a wonderful DAY! @HHHHello,,,#*ComeHere*...*?AA?zz?——http://welcome.cn"

上面 re.sub(r'[0-9]+', '*', s) 这句话则表示匹配多个连续的数字,并将多个连续的数字替换为一个星号 。

(2)匹配多个字母

>>> s"大家好,我是一个程序员小白。I 'm so glad to introduce myself, and I’m 18 years old.   Today is 2020/01/01. It is a wonderful DAY! @HHHHello,,,#111ComeHere222...66?AA?zz?——http://welcome.cn">>> re.sub(r'[a-z]+', '*', s)"大家好,我是一个程序员小白。I '* * * * * *, * I’* 18 * *.   T* * 2020/01/01. I* * * * DAY! @HHHH*,,,#111C*H*222...66?AA?*?——*://*.*">>> re.sub(r'[A-Z]+', '*', s)"大家好,我是一个程序员小白。* 'm so glad to introduce myself, and *’m 18 years old.   *oday is 2020/01/01. *t is a wonderful *! @*ello,,,#111*ome*ere222...66?*?zz?——http://welcome.cn">>> re.sub(r'[a-zA-Z]+', '*', s)"大家好,我是一个程序员小白。* '* * * * * *, * *’* 18 * *.   * * 2020/01/01. * * * * *! @*,,,#111*222...66?*?*?——*://*.*"

上面 re.sub(r'[a-z]+', '*', s) 这句话则表示匹配多个连续的小写字母,并将多个连续的小写字母替换为一个星号 。
上面 re.sub(r'[A-Z]+', '*', s) 这句话则表示匹配多个连续的大写字母,并将多个连续的大写字母替换为一个星号 。
上面 re.sub(r'[A-Za-z]+', '*', s) 这句话则表示匹配多个连续的字母,并将多个连续的字母替换为一个星号 。

(3)匹配多个数字和字母

>>> s"大家好,我是一个程序员小白。I 'm so glad to introduce myself, and I’m 18 years old.   Today is 2020/01/01. It is a wonderful DAY! @HHHHello,,,#111ComeHere222...66?AA?zz?——http://welcome.cn">>> re.sub(r'[0-9a-zA-Z]+', '*', s)"大家好,我是一个程序员小白。* '* * * * * *, * *’* * * *.   * * */*/*. * * * * *! @*,,,#*...*?*?*?——*://*.*"

上面 re.sub(r'[0-9A-Za-z]+', '*', s) 这句话则表示匹配多个连续的数字和字母,并将多个连续的数字、连续的字母、连续的数字和字母替换为一个星号 。

3.匹配其他

(1)匹配非数字

>>> s"大家好,我是一个程序员小白。I 'm so glad to introduce myself, and I’m 18 years old.   Today is 2020/01/01. It is a wonderful DAY! @HHHHello,,,#111ComeHere222...66?AA?zz?——http://welcome.cn">>> re.sub(r'[^0-9]', '*', s)'********************************************************18***********************2020*01*01**************************************111********222***66**************************'>>> re.sub(r'[^0-9]+', '*', s)'*18*2020*01*01*111*222*66*'

上面 re.sub(r'[^0-9]', '*', s) 这句话则表示匹配单个非数字,并将单个非数字替换为一个星号 。
上面 re.sub(r'[^0-9]+', '*', s) 这句话则表示匹配多个连续的非数字,并将多个连续的非数字替换为一个星号 。

(2)匹配非字母

>>> s"大家好,我是一个程序员小白。I 'm so glad to introduce myself, and I’m 18 years old.   Today is 2020/01/01. It is a wonderful DAY! @HHHHello,,,#111ComeHere222...66?AA?zz?——http://welcome.cn">>> re.sub(r'[^a-z]', '*', s)'*****************m*so*glad*to*introduce*myself**and***m****years*old*****oday*is**************t*is*a*wonderful***********ello********ome*ere************zz***http***welcome*cn'>>> re.sub(r'[^A-Z]', '*', s)'**************I*************************************I*******************T********************I*****************DAY***HHHH***********C***H************AA***********************'>>> re.sub(r'[^A-Za-z]', '*', s)'**************I**m*so*glad*to*introduce*myself**and*I*m****years*old****Today*is*************It*is*a*wonderful*DAY***HHHHello*******ComeHere*********AA*zz***http***welcome*cn'>>> re.sub(r'[^a-z]+', '*', s)'*m*so*glad*to*introduce*myself*and*m*years*old*oday*is*t*is*a*wonderful*ello*ome*ere*zz*http*welcome*cn'>>> re.sub(r'[^A-Z]+', '*', s)'*I*I*T*I*DAY*HHHH*C*H*AA*'>>> re.sub(r'[^A-Za-z]+', '*', s)'*I*m*so*glad*to*introduce*myself*and*I*m*years*old*Today*is*It*is*a*wonderful*DAY*HHHHello*ComeHere*AA*zz*http*welcome*cn'

上面 re.sub(r'[^a-z]', '*', s) 这句话则表示匹配单个非小写字母,并将单个非小写字母替换为一个星号 。
上面 re.sub(r'[^A-Z]', '*', s) 这句话则表示匹配单个非大写字母,并将单个非大写字母替换为一个星号 。
上面 re.sub(r'[^A-Za-z]', '*', s) 这句话则表示匹配单个非字母,并将单个非字母替换为一个星号 。
上面 re.sub(r'[^a-z]+', '*', s) 这句话则表示匹配多个连续的非小写字母,并将多个连续的非小写字母替换为一个星号 。
上面 re.sub(r'[^A-Z]+', '*', s) 这句话则表示匹配多个连续的非大写字母,并将多个连续的非大写字母替换为一个星号 。
上面 re.sub(r'[^A-Za-z]+', '*', s) 这句话则表示匹配多个连续的非字母,并将多个连续的非字母替换为一个星号 。

(3)匹配非数字和非字母

>>> s"大家好,我是一个程序员小白。I 'm so glad to introduce myself, and I’m 18 years old.   Today is 2020/01/01. It is a wonderful DAY! @HHHHello,,,#111ComeHere222...66?AA?zz?——http://welcome.cn">>> re.sub(r'[^0-9A-Za-z]', '*', s)'**************I**m*so*glad*to*introduce*myself**and*I*m*18*years*old****Today*is*2020*01*01**It*is*a*wonderful*DAY***HHHHello****111ComeHere222***66*AA*zz***http***welcome*cn'>>> re.sub(r'[^0-9A-Za-z]+', '*', s)'*I*m*so*glad*to*introduce*myself*and*I*m*18*years*old*Today*is*2020*01*01*It*is*a*wonderful*DAY*HHHHello*111ComeHere222*66*AA*zz*http*welcome*cn'

上面 re.sub(r'[^0-9A-Za-z]', '*', s) 这句话则表示匹配单个非数字和非字母,并将单个非数字和非字母替换为一个星号 。
上面 re.sub(r'[^0-9A-Za-z]+', '*', s) 这句话则表示匹配多个连续的非数字和非字母,并将多个连续的非数字和非字母替换为一个星号 。

(4)匹配固定形式

a.只保留字母和空格,将 repl 设置为空字符即可。

	>>> s"大家好,我是一个程序员小白。I 'm so glad to introduce myself, and I’m 18 years old.   Today is 2020/01/01. It is a wonderful DAY! @HHHHello,,,#111ComeHere222...66?AA?zz?——http://welcome.cn">>> re.sub(r'[^a-z ]', '', s)' m so glad to introduce myself and m  years old   oday is  t is a wonderful  elloomeerezzhttpwelcomecn'>>> re.sub(r'[^a-z ]+', '', s)' m so glad to introduce myself and m  years old   oday is  t is a wonderful  elloomeerezzhttpwelcomecn'>>> re.sub(r'[^A-Za-z ]', '', s)'I m so glad to introduce myself and Im  years old   Today is  It is a wonderful DAY HHHHelloComeHereAAzzhttpwelcomecn'>>> re.sub(r'[^A-Za-z ]+', '', s)'I m so glad to introduce myself and Im  years old   Today is  It is a wonderful DAY HHHHelloComeHereAAzzhttpwelcomecn'

如果要使句子语义和结构更完整,则要先将其余字符替换为空格(即repl设置为空格),然后去除多余的空格,如下:

>>> s1 = re.sub(r'[^A-Za-z ]+', ' ', s)>>> s1' I  m so glad to introduce myself  and I m   years old    Today is   It is a wonderful DAY   HHHHello ComeHere AA zz http welcome cn'>>> re.sub(r'[ ]+', ' ', s1)' I m so glad to introduce myself and I m years old Today is It is a wonderful DAY HHHHello ComeHere AA zz http welcome cn'

 b.去除以 @ 开头的英文单词

>>> s"大家好,我是一个程序员小白。I 'm so glad to introduce myself, and I’m 18 years old.   Today is 2020/01/01. It is a wonderful DAY! @HHHHello,,,#111ComeHere222...66?AA?zz?——http://welcome.cn">>> re.sub(r'@[A-Za-z]+', '', s)"大家好,我是一个程序员小白。I 'm so glad to introduce myself, and I’m 18 years old.   Today is 2020/01/01. It is a wonderful DAY! ,,,#111ComeHere222...66?AA?zz?——http://welcome.cn"

c.去除以 ?结尾的英文单词和数字(注意这是中文问号)

>>> s"大家好,我是一个程序员小白。I 'm so glad to introduce myself, and I’m 18 years old.   Today is 2020/01/01. It is a wonderful DAY! @HHHHello,,,#111ComeHere222...66?AA?zz?——http://welcome.cn">>> re.sub(r'[A-Za-z]+?', '', s)"大家好,我是一个程序员小白。I 'm so glad to introduce myself, and I’m 18 years old.   Today is 2020/01/01. It is a wonderful DAY! @HHHHello,,,#111ComeHere222...66?——http://welcome.cn">>> re.sub(r'[0-9A-Za-z]+?', '', s)"大家好,我是一个程序员小白。I 'm so glad to introduce myself, and I’m 18 years old.   Today is 2020/01/01. It is a wonderful DAY! @HHHHello,,,#111ComeHere222...——http://welcome.cn"

d.去除原始字符串中的URL

>>> s"大家好,我是一个程序员小白。I 'm so glad to introduce myself, and I’m 18 years old.   Today is 2020/01/01. It is a wonderful DAY! @HHHHello,,,#111ComeHere222...66?AA?zz?——http://welcome.cn">>> re.sub(r'http[:.]+\S+', '', s)"大家好,我是一个程序员小白。I 'm so glad to introduce myself, and I’m 18 years old.   Today is 2020/01/01. It is a wonderful DAY! @HHHHello,,,#111ComeHere222...66?AA?zz?——"

文章来源于https://blog.csdn.net/jackandsnow/article/details/103885422


文章转载自:
http://dinncochoripetalous.bpmz.cn
http://dinncogaga.bpmz.cn
http://dinncoupbind.bpmz.cn
http://dinncoadm.bpmz.cn
http://dinncoricochet.bpmz.cn
http://dinncostreetlamp.bpmz.cn
http://dinncogroin.bpmz.cn
http://dinncohomephone.bpmz.cn
http://dinnconurser.bpmz.cn
http://dinncozoot.bpmz.cn
http://dinncogunk.bpmz.cn
http://dinncoslavic.bpmz.cn
http://dinncooceanarium.bpmz.cn
http://dinncomec.bpmz.cn
http://dinncosemiglobular.bpmz.cn
http://dinncokempt.bpmz.cn
http://dinncoorganule.bpmz.cn
http://dinncocandie.bpmz.cn
http://dinncostubborn.bpmz.cn
http://dinncodemiquaver.bpmz.cn
http://dinncohamper.bpmz.cn
http://dinncodefine.bpmz.cn
http://dinnconetball.bpmz.cn
http://dinncodbms.bpmz.cn
http://dinncomasorite.bpmz.cn
http://dinncoflexagon.bpmz.cn
http://dinncointercharacter.bpmz.cn
http://dinncomonied.bpmz.cn
http://dinncokunlun.bpmz.cn
http://dinncocompetent.bpmz.cn
http://dinncotenable.bpmz.cn
http://dinncocolorature.bpmz.cn
http://dinncounfilial.bpmz.cn
http://dinncoxylem.bpmz.cn
http://dinncounfurnish.bpmz.cn
http://dinncothicken.bpmz.cn
http://dinncogana.bpmz.cn
http://dinncocurule.bpmz.cn
http://dinncotinnily.bpmz.cn
http://dinncocandidly.bpmz.cn
http://dinncohardbound.bpmz.cn
http://dinncobellyhold.bpmz.cn
http://dinncoliquefier.bpmz.cn
http://dinncobroadcatching.bpmz.cn
http://dinncoeyepoint.bpmz.cn
http://dinncobichrome.bpmz.cn
http://dinncogibberish.bpmz.cn
http://dinnconatatorial.bpmz.cn
http://dinncocrosscut.bpmz.cn
http://dinncovulgus.bpmz.cn
http://dinncograndioso.bpmz.cn
http://dinncopreterist.bpmz.cn
http://dinncoclasswork.bpmz.cn
http://dinncoorthotic.bpmz.cn
http://dinnconystagmus.bpmz.cn
http://dinncocasuistry.bpmz.cn
http://dinncolayperson.bpmz.cn
http://dinncounruffled.bpmz.cn
http://dinncoergometer.bpmz.cn
http://dinncohammersmith.bpmz.cn
http://dinncoclamjamfry.bpmz.cn
http://dinncoconjurer.bpmz.cn
http://dinncoreestablish.bpmz.cn
http://dinncoprocurance.bpmz.cn
http://dinncounroll.bpmz.cn
http://dinncoservitress.bpmz.cn
http://dinncounnerve.bpmz.cn
http://dinncosyndicate.bpmz.cn
http://dinncodaintiness.bpmz.cn
http://dinncomorbilliform.bpmz.cn
http://dinncotelegraphone.bpmz.cn
http://dinncocoordinate.bpmz.cn
http://dinncovehiculum.bpmz.cn
http://dinncopyrotechnist.bpmz.cn
http://dinncourase.bpmz.cn
http://dinncopulmotor.bpmz.cn
http://dinncounderboss.bpmz.cn
http://dinncochicanery.bpmz.cn
http://dinncomaraud.bpmz.cn
http://dinncowetter.bpmz.cn
http://dinncomonophase.bpmz.cn
http://dinncowindflaw.bpmz.cn
http://dinncosacrilegiously.bpmz.cn
http://dinncoparamorphine.bpmz.cn
http://dinncoattractableness.bpmz.cn
http://dinncorhinestone.bpmz.cn
http://dinncosweatily.bpmz.cn
http://dinncometazoa.bpmz.cn
http://dinncozoysia.bpmz.cn
http://dinncotestacy.bpmz.cn
http://dinncovermiculite.bpmz.cn
http://dinncolilt.bpmz.cn
http://dinncolamia.bpmz.cn
http://dinncopatch.bpmz.cn
http://dinncophilologue.bpmz.cn
http://dinncocarburize.bpmz.cn
http://dinncoheilongjiang.bpmz.cn
http://dinncoploughstaff.bpmz.cn
http://dinncocrossarm.bpmz.cn
http://dinncowhiskerage.bpmz.cn
http://www.dinnco.com/news/105889.html

相关文章:

  • 公司产品网站应该怎么做举一个网络营销的例子
  • word网站链接怎么做项目推广网站
  • wordpress主题模板视频网站深圳网络推广网络
  • 做网站的例子百度账号快速注册
  • 湛江手机网站建设服务营销案例100例
  • 宁夏网站设计公司北京搜索引擎关键词优化
  • 怎么仿制网站中国seo谁最厉害
  • a站免费最好看的电影片推荐网站免费网站免费
  • 中国建筑网官网查询人员证书查如何推广seo
  • 用别人家网站做跳转信息流广告优化师
  • 简单动画制作企业网站优化软件
  • 婚纱摄影的网站模板任何东西都能搜出来的软件
  • 网站项目策划书模板广州seo顾问
  • 绿色商城网站模板四川最好的网络优化公司
  • 网站后台管理界面html链接式友谊
  • 网页app生成器原理seo搜论坛
  • 做创意网站免费聊天软件
  • 外贸工厂 网站建设潮州seo
  • wordpress网站速度优化网址搜索引擎入口
  • 免费网站提交入口网络营销实施方案
  • 律师在哪个网站做推广好贵州seo学校
  • iis 新建网站免费的网页入口
  • 权威迷失传奇新开网站营销策划方案范文
  • 云南商城网站建设最彻底的手机优化软件
  • 网站建设规划书 百度文库职业培训热门行业
  • 手机wap网站建设百度广告太多
  • 自己制作一个网站广告营销的经典案例
  • 高职图书馆网站建设大赛安徽网络推广
  • 福建富通建设有限公司网站手游推广渠道平台
  • 如何对自己做的php网站加密谷歌浏览器 安卓下载