美文网首页
使用正则表达式进行中英混排

使用正则表达式进行中英混排

作者: 7okis | 来源:发表于2018-05-17 12:38 被阅读37次

中英混排的一个要点是,英文单词/数字/表达式与汉字相邻时,应引入空格分开。

比如:

$S^\prime$对FIFO存在Belady现象

应修改为:

$S^\prime$ 对 FIFO 存在 Belady 现象

微软的 Word 可以自动完成,而且如果原来已有空格,不会造成影响。
在其他的编辑器上,我们可以使用正则表达式实现这样的效果

(?<![\x00-\x7F])([\x00-\x09\x0B-\x1F\x21-\x7F]+)(?![\x00-\x7F])

可以选中所有这样的单词/数字/表达式,并将单词捕获,使用

 \1 

替换即可完成。

注意是一个空格,接着一个\1,再加上一个空格。

这里主要利用的是,英文使用ascii编码,这里假设ascii范围外的均为应用空格隔开的字符。

([\x00-\x09\x0B-\x1F\x21-\x7F]+)描述了一个或多个ascii码组成的序列。但其中不存在换行(\n\x0A)以及空格(\x20

我们希望选中的序列两侧都是非ascii字符,因此使用逆序环视和正序环视,表达两侧均非ascii编码。

至此,我们已能选中两侧均非英文字符的序列。删去其中一个环视,可以选择单侧,替换时也做相应修改即可。

将来也许将三者结合到一起,不过目前已足够使用。

相关文章

  • 使用正则表达式进行中英混排

    中英混排的一个要点是,英文单词/数字/表达式与汉字相邻时,应引入空格分开。 比如: 应修改为: 微软的 Word ...

  • swift笔记(七)

    1.图文混排 2.正则表达式

  • sublime中英文混排对齐的问题

    sublime中英文混排对齐的问题 之前使用notepad++的时候,用类似于markdown的风格写了一个表格放...

  • Endnote--一些相对复杂的操作

    中英文混排 特殊符号使用,如有期号才有卷号等等 中文与英文sorted order 输出参考文献字号 怎么修改en...

  • 正则匹配

    Java正则表达式特殊字符及其处理以及正则表达式详解 打造原生的图文混排控件

  • CoreText学习笔记(二)- CTRunDelegate

    使用CoreText本身并不能进行图文混排, 但是可以使用CTRunDelegate将需要显示图片的位置预留出来。...

  • 如何在编辑器中去掉多余空行

    使用正则表达式进行替换: 如图, 使用正则表达式 ^\s*$\n 可以匹配到空行, 替换为空白即可. ^和$ 分...

  • 关于中英文混排

    在网络上常常会见到,在中文句子之间夹带英文单词的时候,有的人会在中间空一格空格。例如: 我不打算买 iPhone ...

  • 11.nginx正则表达式

    nginx正则表达式 nginx可以安装 pcretest模块进行校验 正则表达式在使用前 正则表达式加 ~符号 ...

  • 中英文混排指南 - 简化版

    好的中英文混排让文章看起来更规范,谨记下列 3 个规则,从下一篇文章开始遵守,你将获得更多挑剔的读者! 中英文之间...

网友评论

      本文标题:使用正则表达式进行中英混排

      本文链接:https://www.haomeiwen.com/subject/wllbdftx.html