我们经常使用一些工具进行替换操作,有些工具在替换时支持使用正则表达式查找,然后替换。通常有两
种情况:
简单替换
<li class="tab_cur" οnclick="DynamicForm.tab(this,'web');" οnmοusedοwn="ClickMonkey.log
('haoweb');">网 页</li>
<li class="tab_item" οnclick="DynamicForm.tab(this,'video');" οnmοusedοwn="ClickMonkey.log
('haovideo');">视 频</li>
<li class="tab_item" οnclick="DynamicForm.tab(this,'image');" οnmοusedοwn="ClickMonkey.log
('haoimage');">图 片</li>
<li class="tab_item" οnclick="DynamicForm.tab(this,'tieba');" οnmοusedοwn="ClickMonkey.log
('haotieba');">贴 吧</li>
1:将<li>替换成<a>或<span>或<div>等,这个很简单,直接查找<li>的开始结束标签替换即可,连正则表
达式不用就可操作
2:将符合 DynamicForm.tab(this,'.*');这个正则表达式的字符串替换成其它固定的字符串,这个用正则
表达式也可很简单的操作
这两种非常简单,大家都会的,跟没说一样^-^。
复杂替换
这个才是本文重点,还是以上面的<li>片段为例,
将 <li class="tab_cur" οnclick="DynamicForm.tab(this,'web');" οnmοusedοwn="ClickMonkey.log
('haoweb');">网 页</li>
转换为: <div id="tab_cur" οnclick="click('haoweb')" οnmοusedοwn="down('web')">网 页</div>,
其它均类似, 这种情况应该怎么办呢,当然最笨的办法就是一个一个手工替换(希望看了本文后你再也不
要在这种情况进行体力劳动了 ^-^ ),现在我们可以利用正则表达式来替换。
工具1:Editplus,跟这个同级别的工具应用都可以,本人习惯就是使用这个,其它的没用过,大家自己去
试一下好了
打开替换窗口(Ctrl+H):
查找:<li class="(.*)" οnclick="DynamicForm.tab\(this,'(.*)'\);"
οnmοusedοwn="ClickMonkey.log\('(.*)'\);">(.*)</li>
替换: <div id="\1" οnclick="click('\3')" οnmοusedοwn="down('\2')">\4</div>
点击全部替换,结果如下:
<div id="tab_cur" οnclick="click('haoweb')" οnmοusedοwn="down('web')">网 页</div>
<div id="tab_item" οnclick="click('haovideo')" οnmοusedοwn="down('video')">视 频</div>
<div id="tab_item" οnclick="click('haoimage')" οnmοusedοwn="down('image')">图 片</div>
<div id="tab_item" οnclick="click('haotieba')" οnmοusedοwn="down('tieba')">贴 吧</div>
工具2:Eclipse
查找:<li class="(.*)" οnclick="DynamicForm.tab\(this,'(.*)'\);"
οnmοusedοwn="ClickMonkey.log\('(.*)'\);">(.*)</li>
替换: <div id="\1" οnclick="click('\3')" οnmοusedοwn="down('\2')">\4</div>
或 <div id="$1" οnclick="click(' $ 3')" οnmοusedοwn="down(' $ 2')"> $ 4</div>
解释:上面的正则表达式其实是分成了二部分,一部分是固定的字符,像<li class="这样的,还有一部分
是(.*)这样的真正的正则表达式,
使用 <li class="(.*)" οnclick="DynamicForm.tab\(this,'(.*)'\);" οnmοusedοwn="ClickMonkey.log
\('(.*)'\);">(.*)</li> 匹配 <li class="tab_cur" οnclick="DynamicForm.tab(this,'web');"
οnmοusedοwn="ClickMonkey.log('haoweb');">网 页</li>
\0 表示查找到的整个字符串: <li class="tab_cur" οnclick="DynamicForm.tab(this,'web');"
οnmοusedοwn="ClickMonkey.log('haoweb');">网 页</li>
\1 表示符合第1个正则表达式( 第1个(.*) )的内容: tab_cur
\2 表示 符合 第2个正则表达式 ( 第1个(.*) )的内容: web
\3 表示 符合 第3个正则表达式 ( 第1个(.*) )的内容: haoweb
\4 表示 符合 第4个正则表达式 ( 第1个(.*) )的内容: 网 页
当能使用上面这样的占位符来代表对应的内容时,这个时候,我们就可以随便组合我们需要替换成的内容
了:
种情况:
简单替换
<li class="tab_cur" οnclick="DynamicForm.tab(this,'web');" οnmοusedοwn="ClickMonkey.log
('haoweb');">网 页</li>
<li class="tab_item" οnclick="DynamicForm.tab(this,'video');" οnmοusedοwn="ClickMonkey.log
('haovideo');">视 频</li>
<li class="tab_item" οnclick="DynamicForm.tab(this,'image');" οnmοusedοwn="ClickMonkey.log
('haoimage');">图 片</li>
<li class="tab_item" οnclick="DynamicForm.tab(this,'tieba');" οnmοusedοwn="ClickMonkey.log
('haotieba');">贴 吧</li>
1:将<li>替换成<a>或<span>或<div>等,这个很简单,直接查找<li>的开始结束标签替换即可,连正则表
达式不用就可操作
2:将符合 DynamicForm.tab(this,'.*');这个正则表达式的字符串替换成其它固定的字符串,这个用正则
表达式也可很简单的操作
这两种非常简单,大家都会的,跟没说一样^-^。
复杂替换
这个才是本文重点,还是以上面的<li>片段为例,
将 <li class="tab_cur" οnclick="DynamicForm.tab(this,'web');" οnmοusedοwn="ClickMonkey.log
('haoweb');">网 页</li>
转换为: <div id="tab_cur" οnclick="click('haoweb')" οnmοusedοwn="down('web')">网 页</div>,
其它均类似, 这种情况应该怎么办呢,当然最笨的办法就是一个一个手工替换(希望看了本文后你再也不
要在这种情况进行体力劳动了 ^-^ ),现在我们可以利用正则表达式来替换。
工具1:Editplus,跟这个同级别的工具应用都可以,本人习惯就是使用这个,其它的没用过,大家自己去
试一下好了
打开替换窗口(Ctrl+H):
查找:<li class="(.*)" οnclick="DynamicForm.tab\(this,'(.*)'\);"
οnmοusedοwn="ClickMonkey.log\('(.*)'\);">(.*)</li>
替换: <div id="\1" οnclick="click('\3')" οnmοusedοwn="down('\2')">\4</div>
点击全部替换,结果如下:
<div id="tab_cur" οnclick="click('haoweb')" οnmοusedοwn="down('web')">网 页</div>
<div id="tab_item" οnclick="click('haovideo')" οnmοusedοwn="down('video')">视 频</div>
<div id="tab_item" οnclick="click('haoimage')" οnmοusedοwn="down('image')">图 片</div>
<div id="tab_item" οnclick="click('haotieba')" οnmοusedοwn="down('tieba')">贴 吧</div>
工具2:Eclipse
查找:<li class="(.*)" οnclick="DynamicForm.tab\(this,'(.*)'\);"
οnmοusedοwn="ClickMonkey.log\('(.*)'\);">(.*)</li>
替换: <div id="\1" οnclick="click('\3')" οnmοusedοwn="down('\2')">\4</div>
或 <div id="$1" οnclick="click(' $ 3')" οnmοusedοwn="down(' $ 2')"> $ 4</div>
解释:上面的正则表达式其实是分成了二部分,一部分是固定的字符,像<li class="这样的,还有一部分
是(.*)这样的真正的正则表达式,
使用 <li class="(.*)" οnclick="DynamicForm.tab\(this,'(.*)'\);" οnmοusedοwn="ClickMonkey.log
\('(.*)'\);">(.*)</li> 匹配 <li class="tab_cur" οnclick="DynamicForm.tab(this,'web');"
οnmοusedοwn="ClickMonkey.log('haoweb');">网 页</li>
\0 表示查找到的整个字符串: <li class="tab_cur" οnclick="DynamicForm.tab(this,'web');"
οnmοusedοwn="ClickMonkey.log('haoweb');">网 页</li>
\1 表示符合第1个正则表达式( 第1个(.*) )的内容: tab_cur
\2 表示 符合 第2个正则表达式 ( 第1个(.*) )的内容: web
\3 表示 符合 第3个正则表达式 ( 第1个(.*) )的内容: haoweb
\4 表示 符合 第4个正则表达式 ( 第1个(.*) )的内容: 网 页
当能使用上面这样的占位符来代表对应的内容时,这个时候,我们就可以随便组合我们需要替换成的内容
了:
<div id="\1" οnclick="click('\3')" οnmοusedοwn="down('\2')">\4</div>
最后这个是常用的eclipse搜索的正则表达式
1,Eclipse ctrl+f 打开查找框
2,选中 Regular expressions (正则表达式)
去掉/* */(eclipse) /\*(.|[\r\n])*?\*/
去掉//(eclipse) //.*$
去掉import(eclipse) import.*$
去掉空行(eclipse) ^\s*\n
去掉空行(ue) %[ ^t]++^p
去掉/* */(eclipse) /\*(.|[\r\n])*?\*/
去掉//(eclipse) //.*$
去掉import(eclipse) import.*$
去掉空行(eclipse) ^\s*\n
去掉空行(ue) %[ ^t]++^p
把 <html.*property=/"([a-zA-Z/_]+)/".*/>
替换成 <c:out value=/"/$/{af.map.$1/}/" />
替换成 <c:out value=/"/$/{af.map.$1/}/" />
^hello 以hello为开头
hello$ 以hello为结尾
匹配以 </title> 结尾的字符串:
.*? </title>
匹配以 <title> 开头的字符串:
<title> .*
匹配以 <title> 开头 </title> 结尾的字符串:
<title> .*? </title>
.*? </title>
匹配以 <title> 开头的字符串:
<title> .*
匹配以 <title> 开头 </title> 结尾的字符串:
<title> .*? </title>