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

标签 ruby regex string

我想按第一个元音拆分字符串。如果后面的字母也是元音,则在到达序列中的最后一个元音之前不得拆分。例子是:

  • "辅助" => ["Au""xiliary"]
  • “门 Handlebars ” => ["Doo""rknob"]
  • "Green" => ["Gree""n"]

我做到了:

"Auxiliary".split("u")
# => ["A", "uxiliary"]

我需要在赛后拆分,而不是赛前。我不确定我是否可以做类似 "Auxiliary".split(/[aeiouAEIOU]/) 的事情;这只会在它第一次找到元音时 split 。

最佳答案

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

([^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)

输出:

Au
xiliary
Doo
rknob
Gree
n

此处演示:

Rextester

关于ruby - 在匹配特定条件时拆分字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43462088/

相关文章:

ruby-on-rails - 如何在服务器启动时运行 capistrano 任务?

javascript - 正则表达式问题(长字符串)

c# - 如何找到字符串中特定句子的所有出现?

javascript - 正则表达式查找标签和变量

ios - 使用 swift 在文本标签中的文本之间嵌入一个图标

python - 如何使用Python搜索字典值是否包含特定字符串

ruby - 有什么工具可以帮助构建 REST Controller 规范?

ruby - ruby 中的时间格式化字符串

ruby - Rails map_with_index?

python - 如何转义通过用户输入收到的 latex 代码?