有没有可以定义变元的正则表达式替换器

[复制链接]
查看11 | 回复4 | 2011-9-11 01:53:34 | 显示全部楼层 |阅读模式
为了替换一些文本,前两天简单学了一下正则表达式,现在匹配倒是能成功,实际替换却遇到了问题比如有这么一串文本(文本分行)……[2645]A[521]B[1445]C[54565]D[4154]E[4545]F…………[154]A[1212]B[0000]C[9988]D[0009]E[7544]F……现在我要把方括号的数字保持不变,把A,D,E分别替换成X,Y,Z然后我知道匹配的表达式是\\]A\\[.\\]D\\[.\\]E\\[问题是我不知道用什么工具吧中间的“521]B[1445]C[54565”原封不动的保留下来好像\\]A\\[(.*)\\]D\\[(*.)\\]E\\[-\\]A\\[\\1\\]D\\[\\2\\]E\\[编辑器也不认,居然确实给替换成“\\]A\\[\\1\\]D\\[\\2\\]E\\[”这个文本了……
回复

使用道具 举报

千问 | 2011-9-11 01:53:34 | 显示全部楼层
你用的什么编辑器不管你什么空格,你把那个.*括起来就行了\"\\n.*\\n\\n\"改为\"\\n(.*)\\n\\n\"替换为\"\\n\\1\\n\\n\"别忘了去了引号不行hi我
回复

使用道具 举报

千问 | 2011-9-11 01:53:34 | 显示全部楼层
替换为应该是这样:\\]X\\[$1\\]Y\\[$2\\]Z\\[懂?
回复

使用道具 举报

千问 | 2011-9-11 01:53:34 | 显示全部楼层
正则表达式应该这样用:搜索(\\])A(\\[.*?\\])D(\\[.*?\\])E(\\[)替换为\\1X\\2Y\\3Z\\4软件ReplacePioneer对正则表达式支持得很好,具体步骤:1.ctrl-o打开文本文件2.ctrl-h打开replace窗口*在Searchforpattern输入(\\])A(\\[.*?\\])D(\\[.*?\\])E(\\[)即可*在Replacewithpattern输入\\1X\\2Y\\3Z\\4即可3.点击Replace完成替换,ctrl-s存盘。另外,把你的表达式稍改一下也行:搜索\\]A\\[(.*?)\\]D\\[(.*?)\\]E\\[替换为\\]X\\[\\1\\]Y\\[\\2\\]Z\\[参考资料:http://baike.baidu.com/view/1750004.htm
回复

使用道具 举报

千问 | 2011-9-11 01:53:34 | 显示全部楼层
使用notepad打开,选择替换,查找目标:(.*?)A(.*?)D(.*?)E替换为:\\1X\\2Y\\3Z选择循环查找,正则表达式,按全部替换。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行