gpt4 book ai didi

ruby - 使用正则表达式检查字符串是否以辅音开头

转载 作者:数据小太阳 更新时间:2023-10-29 07:09:49 27 4
gpt4 key购买 nike

有没有更好的方法在 Ruby 中编写以下正则表达式?第一个正则表达式匹配以(小写)辅音开头的字符串,第二个以元音字母开头。

我正在尝试找出是否有一种方法可以编写与第二个表达式的否定匹配的正则表达式,而不是编写具有多个范围的第一个表达式。

string =~ /\A[b-df-hj-np-tv-z]/
string =~ /\A[aeiou]/

最佳答案

声明

$string =~ /\A[^aeiou]/

将测试字符串是否以非元音 字符开头,其中包括数字、标点符号、空格和控制字符。如果您事先知道字符串以字母开头,那很好,但是要检查它是否以辅音开头,您可以使用前瞻性来测试它是否以字母和非字母开头-元音,像这样

$string =~ /\A(?=[^aeiou])(?=[a-z])/i

要匹配任意数量的辅音,您可以使用子表达式 (?i:(?![aeiou])[a-z]) 来匹配一个辅音。它是原子的,所以你可以在它后面放一个像 {3} 这样的重复计数。例如,此程序查找列表中连续包含三个辅音的所有字符串

list = %w/ aab bybt xeix axei AAsE SAEE eAAs xxsa Xxsr /

puts list.select { |word| word =~ /\A(?i:(?![aeiou])[a-z]){3}/ }

输出

bybt
xxsa
Xxsr

关于ruby - 使用正则表达式检查字符串是否以辅音开头,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18406509/

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