用boost的正则替换解决问题
2008-03-18 18:09
288 查看
近日有一个网友问我如下的文本怎么替换
内容如下:
<p class=MsoNormal align=center style='text-align:center'>1. THUNBERGIA
Retzius, <span style='color:black'>Physiogr. S鋖sk. Handl.</span> 1(3): 163.
1780. nom. cons.</p>
<p class=MsoNormal align=center style='text-align:center'>1. <b>THUNBERGIA</b>
Retzius, <span style='color:black'>Physiogr. S鋖sk. Handl.</span> 1(3): 163.
1780. nom. cons.</p>
<p class=MsoNormal align=center style='text-align:center'>1. THBByERGIA
Retzius, <span style='color:black'>Phyddfogr. S鋖sk. Hanghl.</span> 1(6): 178.
1780. nom. cons.</p>
有三段<p>标记的文本,其中第二段有<b>标记
需要替换的规则是,在包含有<b>的标记的<p>段落的前后各加一些自定义的字符串,就是替换以后需要是这样:
<p class=MsoNormal align=center style='text-align:center'>1. THUNBERGIA
Retzius, <span style='color:black'>Physiogr. S鋖sk. Handl.</span> 1(3): 163.
1780. nom. cons.</p>
前填充<p class=MsoNormal align=center style='text-align:center'>1. <b>THUNBERGIA</b>
Retzius, <span style='color:black'>Physiogr. S鋖sk. Handl.</span> 1(3): 163.
1780. nom. cons.</p>后填充
<p class=MsoNormal align=center style='text-align:center'>1. THBByERGIA
Retzius, <span style='color:black'>Phyddfogr. S鋖sk. Hanghl.</span> 1(6): 178.
1780. nom. cons.</p>
一般的文本替换肯定实现不了,因为涉及一定的规则了,正好本人新发布的《超级批量文本替换 5.0》支持正则功能可以实现这样的替换
1、选择正则替换功能
2、查找字符串:(</s*p[^>]*>[^<]*?</s*b[^>]*>.*?</s*/b/s*>(.|/r/n)*?</s*/p/s*>)
3、替换为:前填充/1后填充
点替换就可以实现该网友的功能,超级批量文本替换的正则用的是boost的正则库,具体的语法可以参见本blog之前的文章
http://blog.csdn.net/fjye/archive/2008/02/02/2078716.aspx
内容如下:
<p class=MsoNormal align=center style='text-align:center'>1. THUNBERGIA
Retzius, <span style='color:black'>Physiogr. S鋖sk. Handl.</span> 1(3): 163.
1780. nom. cons.</p>
<p class=MsoNormal align=center style='text-align:center'>1. <b>THUNBERGIA</b>
Retzius, <span style='color:black'>Physiogr. S鋖sk. Handl.</span> 1(3): 163.
1780. nom. cons.</p>
<p class=MsoNormal align=center style='text-align:center'>1. THBByERGIA
Retzius, <span style='color:black'>Phyddfogr. S鋖sk. Hanghl.</span> 1(6): 178.
1780. nom. cons.</p>
有三段<p>标记的文本,其中第二段有<b>标记
需要替换的规则是,在包含有<b>的标记的<p>段落的前后各加一些自定义的字符串,就是替换以后需要是这样:
<p class=MsoNormal align=center style='text-align:center'>1. THUNBERGIA
Retzius, <span style='color:black'>Physiogr. S鋖sk. Handl.</span> 1(3): 163.
1780. nom. cons.</p>
前填充<p class=MsoNormal align=center style='text-align:center'>1. <b>THUNBERGIA</b>
Retzius, <span style='color:black'>Physiogr. S鋖sk. Handl.</span> 1(3): 163.
1780. nom. cons.</p>后填充
<p class=MsoNormal align=center style='text-align:center'>1. THBByERGIA
Retzius, <span style='color:black'>Phyddfogr. S鋖sk. Hanghl.</span> 1(6): 178.
1780. nom. cons.</p>
一般的文本替换肯定实现不了,因为涉及一定的规则了,正好本人新发布的《超级批量文本替换 5.0》支持正则功能可以实现这样的替换
1、选择正则替换功能
2、查找字符串:(</s*p[^>]*>[^<]*?</s*b[^>]*>.*?</s*/b/s*>(.|/r/n)*?</s*/p/s*>)
3、替换为:前填充/1后填充
点替换就可以实现该网友的功能,超级批量文本替换的正则用的是boost的正则库,具体的语法可以参见本blog之前的文章
http://blog.csdn.net/fjye/archive/2008/02/02/2078716.aspx
相关文章推荐
- 使用正则解决Js、JQuery replace 只替换第一个的问题
- java替换文本中所有的正则符号 Java问题通用解决代码
- 巧用多个正则表达式解决取反替换问题(解决不匹配则替换问题)——用sed和perl的正则表达式
- php 用正则替换中文字符一系列问题解决
- error: use of deleted function boost::shared_ptr 问题解决
- 关于正则表达式在access读取字符后替换的问题
- eclipse中svn插件替换用户名密码,解决总是提示输入密码 问题
- Qualcomm AR SDK之替换模型(已解决模型贴图问题)
- 解决IIS cpu100%的一个问题,有瑕疵的正则表达式可能会引起.net的死循环
- 正则表达式(解决问题)帖
- QTCreator + MSVC10编译器 使用boost::filesystem 时 error LNK2019: codecvt ... 问题的解决
- String类中replaceAll方法不能替换美元符号$的问题解决
- [Boost]_[使用boost库的正则匹配模块替换字符串]
- 如何使用POI解决word2007中字符替换问题
- js提交文本内容,无法提交到服务器问题解决和js替换字符串问题
- 网上流传的一个很牛的日期判断正则表达式的问题,2-29判断问题解决
- 解决了在某个页面的js代码中替换另外一个frame中页面的问题
- 作业电影评分系统 HIVE实战 正则表达式(限于string)解决了HIVE 源文件多个分隔符的问题
- boost.property_tree解析xml的帮助类以及中文解析问题的解决(转)