ruby中的正则表达式以获取字符串中的所有元音
如何获取字符串中所有出现的元音及其索引 示例:str=“rohan” 我想要一个像{1=>'o',3=>'a'}这样的结果ruby中的正则表达式以获取字符串中的所有元音,ruby,regex,Ruby,Regex,如何获取字符串中所有出现的元音及其索引 示例:str=“rohan” 我想要一个像{1=>'o',3=>'a'}这样的结果 ruby中是否有任何方法可以这样做,或者我必须为此编写一个方法?我不会在这里使用正则表达式: VOWELS = %w(a e i o u) str = "rohan" str.each_char.with_index.select { |c, _i| VOWELS.include? c }.to_h #=> {"o"=>1, "a"=>3} 或者如果您的
ruby中是否有任何方法可以这样做,或者我必须为此编写一个方法?我不会在这里使用正则表达式:
VOWELS = %w(a e i o u)
str = "rohan"
str.each_char.with_index.select { |c, _i| VOWELS.include? c }.to_h
#=> {"o"=>1, "a"=>3}
或者如果您的Ruby版本没有到_h
:
str.each_char.with_index.each_with_object({}) do |(c, i), h|
h[i] = c if VOWELS.include?(c)
end
#=> {1=>"o", 3=>"a"}
我不会在这里使用正则表达式:
VOWELS = %w(a e i o u)
str = "rohan"
str.each_char.with_index.select { |c, _i| VOWELS.include? c }.to_h
#=> {"o"=>1, "a"=>3}
或者如果您的Ruby版本没有到_h
:
str.each_char.with_index.each_with_object({}) do |(c, i), h|
h[i] = c if VOWELS.include?(c)
end
#=> {1=>"o", 3=>"a"}
您可以将()与以下内容一起使用:
您可以将()与以下内容一起使用:
你试过什么吗?元音是一个很小的集合,只需对
[aeiou]
进行正则表达式全局匹配你试过什么吗?元音是一个很小的集合,只需对[aeiou]
进行正则表达式全局匹配这就是我试图记住的+这是一个好办法。谢谢,很好,艾莉。我不知道,上面写着“开始(n)”→ integer-返回字符串中匹配数组第n个元素的开始偏移量。n可以是引用命名捕获的字符串或符号。“这是我试图记住的。”+这是一个好办法。谢谢,很好,艾莉。我不知道,上面写着“开始(n)”→ 整数-返回字符串中匹配数组第n个元素开始的偏移量。n可以是引用命名捕获的字符串或符号。“Michael,您似乎打算将块变量i
更改为\ucode>,但最终结果是\u i
。没有回答,请回答。我将删除此注释。有些人使用\u variable
标记一个将被忽略的变量,但他们仍然希望记录它将是什么(Ruby 2支持此功能,并且不会对遵循该命名方案的变量发出警告)。我想让OP明白这是索引,我不知道。很高兴知道。Michael,您似乎打算将块变量i
更改为\u
,但结果是\ui
。没有回答,请回答。我将删除此注释。有些人使用\u variable
标记一个将被忽略的变量,但他们仍然希望记录它将是什么(Ruby 2支持此功能,并且不会对遵循该命名方案的变量发出警告)。我想让OP明白这是索引,我不知道。很高兴知道。