【笔记】regular express应用一例20070607
昨天碰到一个问题,需要把:
zzz zzz www
zzz zzz www
zzz zzz www
zzz zzz www
zzz zzz www
zzz zzz www
zzz zzz www
zzz zzz www
zzz zzz www
这个文本本给替换为
zzz zzz www
Dzzz zzz www
DDzzz zzz www
DDDzzz zzz www
DDDDzzz zzz www
DDDzzz zzz www
DDzzz zzz www
Dzzz zzz www
折腾了好长时间最后用EmEditor的vbs脚本完成:
主要用到了向后一致指定和向后引用,查
匹配pattern为
(^ +)( )(?=[a-z])([a-z].*)
替换pattern为
\1D\3
其中( )(?=[a-z])为一个整体,(?=[a-z])是( )的向后一致指定
(^ +)( )(?=[a-z])([a-z].*)匹配任意行但是把行的结构分成了三段
替换\1D\3中的\1和\3为向后引用(back reference),
\1对应的(^ +)
\3对应的([a-z].*)也就是直接把\2给换成了D
用EmEditor的VBS脚本完成:
document.selection.Replace "(^ +)( )(?=[a-z])([a-z].*)","\1D\3",eeFindNext Or eeReplaceAll Or eeFindReplaceRegExp
document.selection.Replace "(^ +)( )(?=[a-z])([a-z].*)","\1D\3",eeFindNext Or eeReplaceAll Or eeFindReplaceRegExp
document.selection.Replace "(^ +)( )(?=[a-z])([a-z].*)","\1D\3",eeFindNext Or eeReplaceAll Or eeFindReplaceRegExp
document.selection.Replace "(^ +)( )(?=[a-z])([a-z].*)","\1D\3",eeFindNext Or eeReplaceAll Or eeFindReplaceRegExp
document.selection.Replace "(^ +)( )(?=[a-z])([a-z].*)","\1D\3",eeFindNext Or eeReplaceAll Or eeFindReplaceRegExp
document.selection.Replace "^\s","D",eeFindNext Or eeReplaceAll Or eeFindReplaceRegExp