正则搜索内容并自定义替换
2011-07-14 11:54
295 查看
#正则搜索内容并自定义替换
#使用自行修改
#没替换成功常见错误
#没找到要替换的字符串
#正则式不对
import re
#1 use number serial to replace
#2 use define word in file to replace
#3 use constent word to replace
replace_methed=3
#input text
sourcefile="D:\\test\\rep.txt"
#output text
destfile="D:\\test\\rep_1.txt"
srcf=open(sourcefile,"r")
#1
reptag=0
#2
f2=open("D:\\test\\gg.txt","r")
replists=f2.readlines()
replists_pos=0
#3 constent string to replace
repstring="example string"
#compile the regex of searching string
myre=re.compile("(\n)",re.I | re.DOTALL | re.MULTILINE)
#source content
content=srcf.read()
#test content
#content="xxxxxasdfa sdfsab sdfklsajfa asdfkdjsflb"
dd=myre.search(content)
newcontent=""
while dd!=None:
newcontent+=content[:dd.start()]
for ddi in range(1,len(dd.groups())+1):
if(ddi==1):
if(replace_methed==1):
newcontent+=str(reptag)
reptag+=1
elif(replace_methed==2):
if(replists_pos<len(replists)):
if(replists[replists_pos].endswith("\n")):
newcontent+=replists[replists_pos][:-1]
else:
newcontent+=replists[replists_pos]
replists_pos+=1
else:
replists_pos=0
if(replists[replists_pos].endswith("\n")):
newcontent+=replists[replists_pos][:-1]
else:
newcontent+=replists[replists_pos]
replists_pos+=1
elif(replace_methed==3):
newcontent+=repstring
reptag+=1
else:
newcontent+=dd.group(ddi)
content=content[dd.end():]
dd=myre.search(content)
if(dd==None):
newcontent+=content
destf=open(destfile,"w")
destf.write(newcontent)
destf.close()
srcf.close()
#使用自行修改
#没替换成功常见错误
#没找到要替换的字符串
#正则式不对
import re
#1 use number serial to replace
#2 use define word in file to replace
#3 use constent word to replace
replace_methed=3
#input text
sourcefile="D:\\test\\rep.txt"
#output text
destfile="D:\\test\\rep_1.txt"
srcf=open(sourcefile,"r")
#1
reptag=0
#2
f2=open("D:\\test\\gg.txt","r")
replists=f2.readlines()
replists_pos=0
#3 constent string to replace
repstring="example string"
#compile the regex of searching string
myre=re.compile("(\n)",re.I | re.DOTALL | re.MULTILINE)
#source content
content=srcf.read()
#test content
#content="xxxxxasdfa sdfsab sdfklsajfa asdfkdjsflb"
dd=myre.search(content)
newcontent=""
while dd!=None:
newcontent+=content[:dd.start()]
for ddi in range(1,len(dd.groups())+1):
if(ddi==1):
if(replace_methed==1):
newcontent+=str(reptag)
reptag+=1
elif(replace_methed==2):
if(replists_pos<len(replists)):
if(replists[replists_pos].endswith("\n")):
newcontent+=replists[replists_pos][:-1]
else:
newcontent+=replists[replists_pos]
replists_pos+=1
else:
replists_pos=0
if(replists[replists_pos].endswith("\n")):
newcontent+=replists[replists_pos][:-1]
else:
newcontent+=replists[replists_pos]
replists_pos+=1
elif(replace_methed==3):
newcontent+=repstring
reptag+=1
else:
newcontent+=dd.group(ddi)
content=content[dd.end():]
dd=myre.search(content)
if(dd==None):
newcontent+=content
destf=open(destfile,"w")
destf.write(newcontent)
destf.close()
srcf.close()
相关文章推荐
- 利用DEDE正则批量查找替换数据库的自定义内容
- UltraEdit正则表达式搜索替换小技巧
- Linux下利用find和perl正则替换文件内容
- Emacs for vi Users ----<编辑器文本操作,搜索/替换/正则操作>
- 使用Dreamweaver正则表达式替换href中的内容
- JAVA之旅(三十四)——自定义服务端,URLConnection,正则表达式特点,匹配,切割,替换,获取,网页爬虫
- mysql 正则表达式替换内容
- php进阶:正则表达式的搜索和替换
- Java正则表达式匹配、替换HTML内容
- vi 中使用正则表达式搜索,替换字符串
- [大笑][哈哈]正则表达式替换文本内容中的表情图片
- 使用java 正则表达式 只替换排除< >之内的内容
- 基于Google Search的站内搜索,C#自定义正则解析
- UltraEdit正则表达式搜索替换小技巧
- UltraEdit正则表达式搜索替换小技巧
- Linux下利用find和perl正则替换文件内容
- UltraEdit正则表达式搜索替换小技巧
- dedecms搜索页面列表无法调用自定义内容模式字段的解决方法
- 在MySQL中用正则表达式替换数据库中的内容的方法
- grepwin 1.5.9正则搜索/替换文件文本