EmEditor 正则表达式还原变成半角引号的全角引号

困扰多年的「还原 word 文本贴到 textarea 里时全角引号变成的半角引号」难题终于有解决方案了: 将"([^"]{0,})" 替换为“\\1”

之前考虑的方向一直是替换时能否 loop。这感觉就像是当年 wow 双采为了轮流看矿和草的小黄点,绞尽脑汁想设计一个 macro 检测当前开启的是寻找草药还是寻找矿物,然后按条件 cast 相反的。最后发现用 /castsequence Find Minerals, Find Herb 一切搞定(当然 Cata 以后就不用了)。

下面是几个替换引号的 EmEditor 宏:

document.selection.Replace("\x22([^\x22]{0,})\x22","“\\1”",eeFindNext | eeFindSaveHistory | eeFindReplaceEscSeq | eeReplaceAll | eeFindReplaceRegExp);
document.selection.Replace("<","〈",eeFindNext | eeFindSaveHistory | eeFindReplaceEscSeq | eeReplaceAll | eeFindReplaceRegExp);
document.selection.Replace(">","〉",eeFindNext | eeFindSaveHistory | eeFindReplaceEscSeq | eeReplaceAll | eeFindReplaceRegExp);
document.selection.Replace("\\[([0-9]{4})\\]","〔\\1〕",eeFindNext | eeFindSaveHistory | eeFindReplaceEscSeq | eeReplaceAll | eeFindReplaceRegExp);
document.selection.Replace("【([0-9]{4})】","〔\\1〕",eeFindNext | eeFindSaveHistory | eeFindReplaceEscSeq | eeReplaceAll | eeFindReplaceRegExp);

分别是:半角引号改为全角引号;半角尖括号改为单层书名号;文号年份的括号改为标准括号(〔〕)。