Python正则表达式如何进行字符串替换

先来段网上的知识:http://developer.51cto.com/art/201003/188824.htm

Python正则表达式在使用中会经常应用到字符串替换的代码。有很多人都不知道如何解决这个问题,下面的代码就告诉你其实这个问题无比的简单,希望你有所收获。

1.替换所有匹配的子串用newstring替换subject中所有与正则表达式regex匹配的子串

 
   
   
   
   
  1. result, number = re.subn(regex, newstring, subject) 

2.替换所有匹配的子串(使 用正则表达式对象)

 
   
   
   
   
  1. rereobj = re.compile(regex)  
  2. result, number = reobj.subn(newstring, subject)字符串拆分 

Python字符串拆分

 
   
   
   
   
  1. reresult = re.split(regex, subject) 

字符串拆分(使用正则表示式对象)

 
   
   
   
   
  1. rereobj = re.compile(regex)  
  2. result = reobj.split(subject)匹配 

下面列出Python正则表达式的几种匹配用法:

1.测试正则表达式是否 匹配字符串的全部或部分regex=ur"..." #正则表达式

 
   
   
   
   
  1. if re.search(regex, subject):  
  2. do_something() 

else:do_anotherthing()2.测试正则表达式是否匹配整个字符串regex=ur"...\Z" #正则表达式末尾以\Z结束

 
   
   
   
   
  1. if re.match(regex, subject):  
  2. do_something()  
  3. else:  
  4. do_anotherthing() 

3. 创建一个匹配对象,然后通过该对象获得匹配细节regex=ur"..." #正则表达式

 
   
   
   
   
  1. match = re.search(regex, subject)  
  2. if match:  
  3. # match start: match.start()  
  4. # match end (exclusive): match.end()  
  5. # matched text: match.group()  
  6. do_something()  
  7. else:  
  8. do_anotherthing() 

以上就是对Python正则表达式在字符串替换中的具体介绍。

==================================================================================

再来看个实例:

import re
urlp = "http://www.mypcera.com/star/mm/jiepaimeinv/942{_page}.html&{what}&&{come}"
pageParam = re.findall('{.*?}', urlp)[0]
print(pageParam)
pageParam = pageParam.replace("page", "3").strip("{}")
print(pageParam)
result = re.sub('{.*?}', pageParam, urlp)
print(result)
看下运行结果:

E:\Program\Python>t.py
{_page}
_3
http://www.mypcera.com/star/mm/jiepaimeinv/942_3.html&_3&&_3

明白了吧,真的很简单噢!

你可能感兴趣的:(Python,正则表达式,python,regex,测试,import,2010)