排版检查中的正则表达式

时间:2018-08-28 07:41:36

标签: regex typography

大家好!

首先,我是一名专业翻译/本地化器/口译员,因此在解决与正则表达式或类似内容有关的问题时,有时会遇到某些困难。请和我一起忍受:)

这是我当前的设置:

  • 医疗短文的翻译;
  • 应用本地化。 这些文章直接在应用程序中发布,因此我们需要针对某些印刷规则进行预先测试,以免出现不一致的情况。

因为我是新的团队负责人,所以我决定使用正则表达式自动执行此过程。 但是我被困住了,因为我不确定我是对还是错。

这是我想出的:

  • 破折号前的不间断空格,破折号后的空白: ^[\xA0]+(—[\s]+)+$
  • 数字破折号(15–20或2001–2016):^[0-9]+(–[0-9]+)+$
  • 数字和单词之间的不间断空格(15个孩子,第4周): ^([\d]+((\xA0))+[\w]+)^[\w]+((\xA0)+[\d])+$
  • 列表必须以带有以下空格的破折号开头:
    (?(?=\S)(\-)|([\s]+[\w]+[\d]))+[\s]+[\w]+[\s]+.[[:punct:]]$

我试图在Regex101上运行这些表达式,一切似乎正常,但是我很想了解是否有需要改进的地方(而且我相信,肯定还有改进的余地)。

感谢您的建议和帮助!

编辑#1:这与编程语言无关,我们将在允许根据这些规则检查翻译记忆库的QA应用程序中使用这些表达式。

编辑#2:我已经针对我们的翻译记忆库测试了正则表达式;它当然不适用于列表-如果破折号和下一个单词之间没有空格,则正则表达式不会显示错误; 并且在破折号之前对不间断的空格有效,但对于破折号之后的空白没有任何反应。

0 个答案:

没有答案