大概是如同vim的 ex命令:
silent! %s/\([\u4e00-\u9fa5\u3040-\u30FF]\)\.\($\|\s\+\)/\1。/g
使用elisp怎么写呢?
大概是如同vim的 ex命令:
silent! %s/\([\u4e00-\u9fa5\u3040-\u30FF]\)\.\($\|\s\+\)/\1。/g
使用elisp怎么写呢?
如果要造轮子的话,chinese-pyim有这个功能了
不会 Vim 的正则表达式,暂时把最后面的 \s\+
理解成一个或多个空格的话,直译过来可能大致像这样:
(replace-regexp-in-string "\\([\u4E00-\u9FA5\u3040-\u30FF]\\).\\($\\| +\\)"
"\\1。"
"Hello 中文.")
=> "Hello 中文。"
(replace-regexp-in-string "\\([\u4E00-\u9FA5\u3040-\u30FF]\\).\\($\\| +\\)"
"\\1。"
"Hello 中文. 完")
=> "Hello 中文。完"
(注意上面第二个参数 Replacement 是 “\\。”,但是 Markdown 渲染成别的了,不明白 Markdown 中 Escape 到底是怎么一回事)
Emacs 里可用 \cc
匹配一个中文字符(还有个 \cC
,我不清楚什么区别以及它们各自的范围是多少),也可以试试
C-M-% \(\cc\)\.\($\| \) RET \1。RET
谢谢啦,很详细