Chinaunix首页 | 论坛 | 博客
  • 博客访问: 55656
  • 博文数量: 16
  • 博客积分: 306
  • 博客等级: 二等列兵
  • 技术积分: 162
  • 用 户 组: 普通用户
  • 注册时间: 2012-04-20 15:08
文章分类

全部博文(16)

文章存档

2013年(1)

2012年(15)

我的朋友

分类: Python/Ruby

2012-10-26 18:10:25

python中re模块中体重了基于模式的字符串处理能力,比如替换字符串,以及根据界定符对字符串进行分解等。

点击(此处)折叠或打开


  1. 点击(此处)折叠或打开

    1. import re

    2. tststr = 'This sentence ends in 5 stars *****'
    3. str1 = "1,2,3,4,5,6,7"
    4. str2 = "1+2x*3-y"

    5. formatstr = '%-34s: %s' # string to format output

    6. print formatstr % ("Original string" ,tststr)

    7. tststr = re.sub( r'\*' , r'^' , tststr) #替换子字符串
    8. print formatstr % ( '^ substitute for *' , tststr)

    9. tststr = re.sub( r'stars' , 'carets' , tststr )
    10. print formatstr % ('carets substitute for stars' , tststr)

    11. tststr = formatstr % ( "Every word replaced by 'hello'" ,
    12.             re.sub(r'\w+' , 'hello' , tststr) )

    13. print formatstr % ('Replace str1 first 3 digits by "digit"' ,
    14.             re.sub(r'\d' , 'digit' , str1 , 3) ) #将数字进行替换,并指定替换的最多次数

    15. print formatstr % ('Splitting' + str1 , re.split(r',' , str1))

    16. print formatstr % ("Splitting " + str2 , re.split(r'[+\-*/%]' , str2))
    17. #类只能个出现的任何字符(^- 除外)都会被解释成字面意义的字符,所以 $ , +* 等元字符无需转义

    点击(此处)折叠或打开

    1. 运行结果如下:
    2. Original string : This sentence ends in 5 stars *****
    3. ^ substitute for * : This sentence ends in 5 stars ^^^^^
    4. carets substitute for stars : This sentence ends in 5 carets ^^^^^
    5. Replace first 3 digits by "digit" : digit,digit,digit,4,5,6,7
    6. Splitting1,2,3,4,5,6,7 : ['1', '2', '3', '4', '5', '6', '7']
    7. Splitting 1+2x*3-y : ['1', '2x', '3', 'y']



阅读(951) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~