在匹配特定条件时拆分字符串

Iai*_*inK 1 ruby regex string

我想用第一个元音分割一个字符串.如果下面的字母也是元音,那么它必须不会分裂,直到它到达序列中的最后一个元音.例如:

  • "Auxiliary" => ["Au" "xiliary"]
  • "Doorknob" => ["Doo" "rknob"]
  • "Green" => ["Gree" "n"]

我做了:

"Auxiliary".split("u")
# => ["A", "uxiliary"]
Run Code Online (Sandbox Code Playgroud)

比赛结束后我需要分手,而不是之前.我不确定我是否能做类似的事情"Auxiliary".split(/[aeiouAEIOU]/); 这只会在第一次发现元音时分裂.

Tim*_*sen 5

您可以尝试使用以下模式:

([^aeiou]*[aeiou]+)(.*)

([^aeiou]*[aeiou]+)    match and capture zero or more continuous non vowels
                       followed by one or more vowels
(.*)                   then capture the remainder of the string  

puts "Auxiliary".scan(/([^aeiou]*[aeiou]+)(.*)/i)
puts "Doorknob".scan(/([^aeiou]*[aeiou]+)(.*)/i)
puts "Green".scan(/([^aeiou]*[aeiou]+)(.*)/i)
Run Code Online (Sandbox Code Playgroud)

输出:

Au
xiliary
Doo
rknob
Gree
n
Run Code Online (Sandbox Code Playgroud)

在这里演示:

Rextester