gpt4 book ai didi

如果找到下一个字母,Ruby 将替换字符串

转载 作者:数据小太阳 更新时间:2023-10-29 08:19:33 28 4
gpt4 key购买 nike

仅当模式后的下一个字母是给定的字母之一时,我才想替换 Ruby 中的模式。

示例:仅当“αυ”之后的下一个字母是以下之一时,才将“αυ”替换为“av”:α|γ|δ|λ|μ|ν|ρ|σμ|ω

这段代码当然行不通,我想我需要使用更复杂的正则表达式来匹配模式后的字母之一。

string.gsub!("αυ", "av") if string =~ /α|γ|δ|λ|μ|ν|ρ|σμ|ω/

感谢您的任何建议。

最佳答案

使用积极的前瞻:

string.gsub!(/αυ(?=α|γ|δ|λ|μ|ν|ρ|σμ|ω)/, "av")

参见 Rubular demo

详情

  • αυ - αυ 子串
  • (?=α|γ|δ|λ|μ|ν|ρ|σμ|ω) - 正向前瞻,要求其中存在一个备选方案,同时排除备选方案在匹配值内,即它将留在结果字符串中)。

您也可以将单字符交替“收缩”到一个字符类中

/αυ(?=[αγδλμνρω]|σμ)/
^^^^^^^^^^

参见 another Rubular demo . σμ 不能放在字符类中,因为它包含 2 个字符。

关于如果找到下一个字母,Ruby 将替换字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47635280/

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