|
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件 ★ 免费下载 ★ ★ 使用帮助★
本帖最后由 wwwruc 于 2011-12-30 09:48 编辑
今天终于明白了替换的原理。和大家分享下,在看这些内容前,建议先熟悉下正则表达式的基础知识。
正则表达式的三步曲应该是:1、查找;2、引用匹配了的文本(后向引用);3、有选择地替换文本。
案例:
我们的电话格式通常都是:(区号)电话,比如说:(029)8401132;现在假设我们要求把文本中所有的电话格式都改为:029-8401132,我们可以这样做:
Text
(020)82514769
(021)83281314
(029)88401132
RegEx
\((\d{3})\)(\d{8})
注:这段其实也可以写成\(\d{3}\)\d{8},之所以给\d{3}和\d{8}分别用括号加起来,是因为替换的时候需要引用括号里面的内容。
Replace
$1-$2
注:大部分语言的正则表达式实现,在查找中,使用后向引用来代表一个子模式,其语法是“\数字”;而在替换中,其语法是“$数字”。
所以$1就表示引用刚才匹配到的第一部分,$2是匹配到的第二部分,中间用连字符-。
Result
020-82514769
021-83281314
029-88401132
另外一个方法给匹配命名:
RegEx
\((?<part1>\d{3})\)(?<part2>\d{8})注:\d{3}被命名为part1,\d{8}命名为part2
Replace
${part1}=${part2}
注:给子模式命名的语法是:?<name>,后向引用的语法是:${name}。
所以上面这段的意识就是两部分用=相连。
结果如下:
020=82514769
021=83281314
029=88401132
大家可以一试!
|
|