小戚园地

Do as I want to do!
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

正则表达式

Posted on 2018-08-31 10:48  YeanJay  阅读(144)  评论(0编辑  收藏  举报
1. re.sub("需要被替换的正则表达式","需要替换的字符串","需要处理的原始的字符串")
例子:
myStr = "<b>我是b</b><i>我是i</i><strong>我是strong</strong>"
# 将b换成em 即<em>第三方</em>
data = re.sub("<b>(.*?)</b>", "<em>我是em</em>", myStr)
print(data)   #  <em>我是em</em><i>我是i</i><strong>我是strong</strong>
# 将所有的标签名换成em,不改变标签内的内容
data  = re.sub("<b>(.*?)</b><i>(.*?)</i><strong>(.*?)</strong>", "<em>\\1</em><em>\\2</em><em>\\3</em>",myStr)
print(data)  # 其中\1是取第一个(.*?)获取的内容, \2是第二个(.*?)的内容,...。<em>我是b</em><em>我是i</em><em>加粗strong</em> 
# 将1970/01/02变为01月02日1970年(考察分组,内容的获取)
myData = "1970/01/02"
ret = re.sub("(\d+)/(\d+)/(\d+)", "\\2月\\3日\\1年", myData)
print(ret)  #  01月02日1970年

打印结果:

<em>我是em</em><i>我是i</i><strong>我是strong</strong>
<em>我是b</em><em>我是i</em><em>我是strong</em>
01月02日1970年

例子2:  替换字符串中的空格 用 + 代替

keyword = 'girl dress haha'
out = re.sub('\s', '+' ,keyword)
print(out)

打印: girl+dress+haha

  

title_re = '<span itemprop="name">W.L.MONSOON Princess <font><b>Dress</b></font> Long Sleeve <font><b>Dresses</b></font> for <font><b>Girls</b></font></span>'
pat = '<font><b>(.*?)</b></font>'

data_pa = re.sub('<font><b>(.*?)</b></font>','\\1',title_re)

print(data_pa)

  打印:  

<span itemprop="name">W.L.MONSOON Princess Dress Long Sleeve Dresses for Girls</span>


提取不是数字的字符串

sss= '2abc'
AA= re.sub('\d','',sss)
AA