问题:对字符串中的文本做查找和替换

解决方案:

1、对于简单模式:str.replace(old, new[, max])

2、复杂模式:使用re模块中的re.sub(匹配的模式, newstring, oldstring[,替换个数])函数

3、re.subn()可以获得替换的总次数

# example.py
#
# Examples of simple regular expression substitution import re #simple sample
text1='yeah,but no,but yeah,but no,but yeah,but no,but yeah'
print (text1.replace('yeah','yeh'))
print (text1.replace('no','yes',2))
print ('---------------------------')
# Some sample text
text = 'Today is 11/27/2012. PyCon starts 3/13/2013.'
datepat = re.compile(r'(\d+)/(\d+)/(\d+)')
# (a) Simple substitution \3-表示匹配的模式中第3个模式组
print(datepat.sub(r'\3-\1-\2', text)) #等价于print (re.sub(r'(\d+)/(\d+)/(\d+)',r'\3-\1-\2', text))
print ('*****************************')
# (b) Replacement function 替换回调函数
from calendar import month_abbr
def change_date(m):
mon_name = month_abbr[int(m.group(1))]
return '{} {} {}'.format(m.group(2), mon_name, m.group(3)) print(datepat.sub(change_date, text))
print (re.sub(r'(\d+)/(\d+)/(\d+)',change_date, text))
print ('++++++++++++++++++++++++++++++++')
# 通过re.subn()获取替换的总次数
newtext,n=datepat.subn(r'\3-\1-\2', text) 
print (newtext)
print (n)
>>> ================================ RESTART ================================
>>>
yeh,but no,but yeh,but no,but yeh,but no,but yeh
yeah,but yes,but yeah,but yes,but yeah,but no,but yeah
---------------------------
Today is 2012-11-27. PyCon starts 2013-3-13.
*****************************
Today is 27 Nov 2012. PyCon starts 13 Mar 2013.
Today is 27 Nov 2012. PyCon starts 13 Mar 2013.
++++++++++++++++++++++++++++++++
Today is 2012-11-27. PyCon starts 2013-3-13.
2
>>>

【python cookbook】【字符串与文本】5.查找和替换文本的更多相关文章

  1. python中字符串操作--截取,查找,替换

    python中,对字符串的操作是最常见的,python对字符串操作有自己特殊的处理方式. 字符串的截取 python中对于字符串的索引是比较特别的,来感受一下: s = '123456789' #截取 ...

  2. 【python cookbook】【字符串与文本】6.以不区分大小写的方式对文本做查找和替换

    问题:以不区分大小写的方式对文本做查找和替换 解决方法:使用re模块,并对各种操作都添加上re.IGNORECASE标记 text='UPPER PYTHON,lower python,Mixed P ...

  3. bat批处理 查找替换:批处理如何查找并替换文本里特定字符串中的部分内容

    批处理如何查找并替换文本里特定字符串中的部分内容 摘自:http://www.bathome.net/thread-43349-1-1.html 脚本如下: @if()==() echo off &a ...

  4. C# 在word中查找及替换文本

    C# 在word中查找及替换文本 在处理word文档时,很多人都会用到查找和替换功能.尤其是在处理庞大的word文档的时候,Microsoft word的查找替换功能就变得尤为重要,它不仅能让我们轻易 ...

  5. JS实现文本中查找并替换字符

    JS实现文本中查找并替换字符 效果图: 代码如下,复制即可使用: <!DOCTYPE html><html> <head> <style type=" ...

  6. Linux中在vim/vi模式下对文本的查找和替换

    查找: 1.vim  filename  进入一般模式下 2.查找和替换方法 /word    向下查找word 的字符串  例如  /chengtingting   向下查找字符chengtingt ...

  7. python cookbook第三版学习笔记四:文本以及字符串令牌解析

    文本处理: 假设你存在一个目录,下面存在各种形式的文件,有txt,csv等等.如果你只想找到其中一种或多种格式的文件并打开该如何办呢.首先肯定是要找到满足条件的文件,然后进行路径合并在一一打开. pa ...

  8. python cookbook 字符串和文本

    使用多个界定符分隔字符串 import re line = 'asdf fjdk; afed, fjek,asdf, foo' print(re.split(r'[;,\s]\s*', line)) ...

  9. shell 字符串处理汇总(查找,替换等等)

    字符串: 简称“串”.有限字符的序列.数据元素为字符的线性表,是一种数据的逻辑结构.在计算机中可有不同的存储结构.在串上可进行求子串.插入字符.删除字符.置换字符等运算. 字符: 计算机程序设计及操作 ...

随机推荐

  1. jquery中奖实例代码

    <!doctype html> <html> <head> <meta http-equiv="Content-Type" content ...

  2. ionic安装时遇到的minimatch错误

    安装提示 npm WARN deprecated minimatch@2.0.10: Please update to minimatch 3.0.2 or higher to avoid a Reg ...

  3. Android EditText 改变边框颜色

    第一步:为了更好的比较,准备两个一模一样的EditText(当Activity启动时,焦点会在第一个EditText上,如果你不希望这样只需要写一个高度和宽带为0的EditText即可避免,这里就不这 ...

  4. 使用TextWatcher监听EditText变化

    public class MainActivity extends AppCompatActivity { private TextView mTextView; private EditText m ...

  5. Android --账户注销

    参考博客:android如何实现注销功能 Intent logoutIntent=new Intent(SettingActivity.this,LoginActivity.class); //在执行 ...

  6. [3D]绘制线

    数据实体: using System; using System.Collections.Generic; using System.Linq; using System.Text; using Sy ...

  7. canvas的代码封装

    (function(window,document){ var cs2d = function(selector,options){ return new cs2d.fn.init(selector, ...

  8. play项目部署

    首先对于现场的数据库,一定要谨慎谨慎再谨慎,特别是保存有重要数据的. 使用expdp命令导入数据库: 事前准备: 1.确保linux服务器上已经正确安装oracle (10g以上版本) 2.有Xshe ...

  9. MySQL-profiling的使用

    分析SQL执行带来的开销是优化SQL的重要手段.在MySQL数据库中,可以通过配置profiling参数来启用SQL剖析.该参数可以在全局和session级别来设置.对于全局级别则作用于整个MySQL ...

  10. struts标签小记

    1.<s:iterator>标签的  奇偶数行使用不同样式 <s:iterator id="list" value="#request.listq&qu ...