正则表达式匹配URL、HTML标签或标记、任意字符包括空格和换行符

作者:我就是个世界 发表于:2016-04-04
做数据迁移,发现旧数据的文章中包含有太多的WORD中的无用代码,于是想在SQL数据中做清理,最好的办法是使用正则表达式,对无用的代码做替换处理,使用Editplus或EverEdit都是非常不错的文本编辑器

使用了以下正测表达式:
[b]匹配URL[/b]:[separator]
[quote]
例子:
[code]
<IMG height=855 alt="" src="http://192.168.0.111/newlist.asp?ClassID=BX08073017358034//Files/xinwen/2014/4/hw004.jpg" width=600 border=0>
<IMG height=855 alt="" src="http://192.168.0.111/newlist.asp?ClassID=BX08073017354093//Files/xinwen/2015/2/hw005.jpg" width=600 border=0>
<IMG height=855 alt="" src="http://192.168.0.111/newlist.asp?ClassID=BX08073017554075//Files/xinwen/2015/2/hw006.jpg" width=600 border=0>
<IMG height=855 alt="" src="http://192.168.0.111/newlist.asp?ClassID=BX08073027354079//Files/xinwen/2016/4/hw007.jpg" width=600 border=0>
[/code]

正测表达式:
[code](http|ftp|https):\/\/192\.168\.0\.111\/newlist.asp\?ClassID\=BX\d+//Files/xinwen/[/code]
替换为
[code]res/Files/xinwen/[/code]

结果:
[code]
<IMG height=855 alt="" src="res/Files/xinwen/2014/4/hw004.jpg" width=600 border=0>
<IMG height=855 alt="" src="res/Files/xinwen/2015/2/hw005.jpg" width=600 border=0>
<IMG height=855 alt="" src="res/Files/xinwen/2015/2/hw006.jpg" width=600 border=0>
<IMG height=855 alt="" src="res/Files/xinwen/2016/4/hw007.jpg" width=600 border=0>
[/code]
[/quote]

[b]匹配URL、HTML标签或标记、任意字符包括空格和换行符[/b]
[quote]
例子:
[code]
<st1:chmetcnv w:st="on" tcsc="0" numbertype="1" negative="False" hasspace="False" sourcevalue="4" unitname="毫米"><span lang="EN-US">4</span><span >毫米</span></st1:chmetcnv>

<st1:chmetcnv w:st="on" tcsc="0" numbertype="1" negative="False" hasspace="False" sourcevalue="4" unitname="毫米"><span lang="EN-US">4</span><span >毫</span></st1:chmetcnv>

<st1:chmetcnv w:st="on" tcsc="0" numbertype="1" negative="False" hasspace="False" sourcevalue="4" unitname="毫米"><span lang="EN-US">4</span><span >米</span></st1:chmetcnv>

四周留白约<st1:chmetcnv w:st="on" UnitName="cm" SourceValue="8" HasSpace="False" Negative="False" NumberType="1" TCSC="0"><SPAN>8cm</st1:chmetcnv>,作品说明装于框内右下角(内容包括拍摄时间、地点,尺寸为长<st1:chmetcnv w:st="on" UnitName="cm" SourceValue="12" HasSpace="False" Negative="False" NumberType="1" TCSC="0">12cm</st1:chmetcnv>×高<st1:chmetcnv w:st="on" UnitName="cm" SourceValue="6" HasSpace="False" Negative="False" NumberType="1" TCSC="0">6cm</st1:chmetcnv>);</SPAN>书法、绘画作品尺寸一般为<SPAN>4尺整张——6尺整张(对开也可),竖幅装轴;硬笔书法不小于A3纸、装框。</SPAN>参赛作品需注明作者姓名、单位及作品含意
[/code]

正测表达式:
[code](<st1:chmetcnv [\s\S]*?>)([\s\S]*?)(</st1:chmetcnv>)[/code]
替换为
[code]$2[/code]


结果:
[code]
<span lang="EN-US">4</span><span >毫米</span>

<span lang="EN-US">4</span><span >毫</span>

<span lang="EN-US">4</span><span >米</span>


四周留白约<SPAN>8cm,作品说明装于框内右下角(内容包括拍摄时间、地点,尺寸为长12cm×高6cm);</SPAN>书法、绘画作品尺寸一般为<SPAN>4尺整张——6尺整张(对开也可),竖幅装轴;硬笔书法不小于A3纸、装框。</SPAN>参赛作品需注明作者姓名、单位及作品含意,鼓励创作
[/code]

[/quote]



[b]匹配HTML标签,处理多余的p标签样式[/b]
[quote]
例子:
[code]
<p style="color: rgb(53, 53, 53);font-family: 宋体;white-space: normal;text-indent: 37px;line-height: 21px;text-align: center;background-color: rgb(255, 255, 255)">&nbsp;</p><p style="color: rgb(53, 53, 53);font-family: 宋体;white-space: normal;text-indent: 37px;line-height: 21px;text-align: center;background-color: rgb(255, 255, 255)"><strong>行政许可的项目及办理程序</strong></p><p style="color: rgb(53, 53, 53);font-family: 宋体;white-space: normal;line-height: 21px;background-color: rgb(255, 255, 255)">许可依据:《中华人民共和国公路法》、《路政管理规定》&nbsp;&nbsp;&nbsp;</p><p style="color: rgb(53, 53, 53);font-family: 宋体;white-space: normal;margin: 0 0 0 77px;line-height: 21px;background-color: rgb(255, 255, 255)">办理机构:其中&nbsp;除本细则第3条和第6条由各县路政大队审批外,其他许可事项由长治公路分局路政支队审批。</p>
[/code]

正测表达式:
[code](<p)( [\s\S]*?)(>[\s\S]*?)(</p>)[/code]
替换为
[code]$1$3$4[/code]

结果:
[code]
<p>&nbsp;</p><p><strong>行政许可的项目及办理程序</strong></p><p>许可依据:《中华人民共和国公路法》、《路政管理规定》&nbsp;&nbsp;&nbsp;</p><p>办理机构:其中&nbsp;除本细则第3条和第6条由各县路政大队审批外,其他许可事项由长治公路分局路政支队审批。</p>
[/code]

[/quote]


[b]匹配尖括号括起来的字母或数字(即HTML/XML标签)[/b]
正测表达式:
[code]<(\w+)>[/code]

参考文档:
正则表达式30分钟入门教程 http://www.husw.net/tool/Regular%20Expression/zhengzhe-biaodashi-jiaocheng-se.htm
使用正则表达式匹配任意字符包括空格和换行符 http://www.uedsc.com/the-regular-expression-matches-any-character.html  
正则表达式匹配任意字符(包括换行符)的写法 http://blog.csdn.net/liehuo123/article/details/6068823
正则表达式匹配URL或者网址 http://c.biancheng.net/cpp/html/1435.html

分享:

扫一扫在手机阅读、分享本文

请发表您的评论