用regexp表达并捕获单词

时间:2018-01-02 16:45:54

标签: javascript regex syntax

我是法国人,我们有一些相当新的写作规范,使语言更具“包容性”。这意味着每个词,结合词和后缀,如果适合每个人,都必须是女性和男性化。

因此对于C'est le présidentC'est la présidente,它现在是C'est lae président·e。 翻译:{{1​​}}

但声乐合成无法理解,所以我想提取混合词[She/He is the president]并阅读两次(男性化方式和女性化方式)。

到目前为止,我使用正则表达式删除了新写作约定中使用的每个不可读字符(· - 。•)président·e,因此它输出了女性单词chaine.replace(/t[·\-\.•]e/gi,'te')

但我想要一个输出présidente

检测到président et présidente时的输出: word + t +“和”+ word + te

很难说清楚抱歉:) 提前致谢!

1 个答案:

答案 0 :(得分:1)

根据我的理解,您希望使用两种变体返回字符串,以使C'est lae président·e变为C'est lae président et présidente。假设这是对您要完成的内容的正确解释,您可以使用以下代码。

下面我使用[^ ]+的原因是JavaScript在正则表达式中不支持Unicode字符,因此这是我演示正则函数的最简单方法(也适用于{{{ 1}})匹配除单词分隔符之外的任何字符(在您的情况下是空格字符)。

代码

é

说明

  • var s = "C'est lae président·e", r = /([^ ]+)·([^ ]+)/gi console.log(s.replace(r, '$1 et $1$2'))将除空格之外的任何字符捕获一次或多次到捕获组1
  • ([^ ]+)按字面意思匹配
  • ·将除空格之外的任何字符一次或多次捕获到捕获组2