gpt4 book ai didi

javascript - 向正则表达式 javascript 添加异常

转载 作者:行者123 更新时间:2023-11-29 20:48:13 25 4
gpt4 key购买 nike

我正在制作罗马尼亚语断字脚本。上一个问题(已解决)在这里:regex if capture group matches string如果你想看一看这是处理不是双元音或三元音的元音的正则表达式:

(?:[aeiou])(?=[aeiou][bcdfghjklmnprstvwxyz]{0,})

我似乎不知道如何为此添加两个异常(exception):最终位置的“ii”保持在一起。 “ii”组前面通常有一个辅音,除了“copiii”是用连字符连接的 -pi-ii https://regex101.com/r/ew4JUh/1预期的结果,除了单词“copiii”总是一个辅音(或更多)后跟同一个音节中的“ii”组muschii = mus-chiipomii = po-mii

编辑:

以防万一有人需要做同样的事情,您可以在这里找到到目前为止的脚本:

https://playcode.io/156923

它有效 - 主要是。

它按照我的理解执行规则。唯一的问题是可能有一半的词不符合规则。因此,尽管脚本做了它应该做的事情,但它无法处理无法预料的异常。

例如:

avion = a-vi-on

iodat = io-dat

piatra = pia-tra

钻石 = di-a-mant

以此类推,无穷无尽。我不相信有任何规则可以确定元音何时被分组为双元音或三元音以及它们何时属于不同的音节。

从好的方面来说,我知道的语法和正则表达式比以往任何时候都多:)

非常感谢 Wiktor,他提供了极大的帮助。

最佳答案

你可以使用

(?!ii\b)[aeiou](?=[aeiou])

参见 regex demo .

请注意,正先行末尾的 [bcdfghjklmnprstvwxyz]{0,} 是多余的,是否需要可选模式都没有区别。

详情

  • (?!ii\b) - 如果紧挨着当前位置的右侧有 ii 后跟一个单词,则匹配失败的否定前瞻边界
  • [aeiou] - 元音
  • (?=[aeiou]) - 后面必须跟另一个元音。

关于javascript - 向正则表达式 javascript 添加异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53374892/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com