ruby - Rails 由完整的正则表达式匹配拆分

标签 ruby regex

如何通过完整的 regex 匹配来拆分?如果 regex 包含组,则每个完整匹配项都将是所有组的数组。但是,如何只获取一系列完整匹配项,而不将它们进一步分组?

例子:

"foo-14".scan(/(foo|bar)-([0-9a-zA-Z]+)/)

返回:

[["foo", "14"]]

但我想要:

["foo-14"]

拆分的工作方式类似。

最佳答案

您可以在正则表达式中使用非捕获组:

"foo-14".scan(/(?:foo|bar)-[0-9a-zA-Z]+/)
#=> ["foo-14"]

关于ruby - Rails 由完整的正则表达式匹配拆分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45035954/

相关文章:

ruby-on-rails - 如何从 Visual Studio Code 运行和调试 Ruby on Rails?

java - 没有 "^"作为模式开始的正则表达式性能低下

php - 在每次字符更改时将空格插入字符串

java - 用于匹配 URL 部分的正则表达式

c# - string message = Regex.Replace(message, "\\", "") 有问题;

regex - 使用 sed 重新排列复杂的字符串

ruby - 如何检查一个字符串是否是用 Ruby 编码的 base 64?

ruby-on-rails - 基于正则表达式的 Rails 自定义验证?

Ruby 要求和 self.require

ruby-on-rails - Ruby:如何根据可变数量在 Active Admin 面板中将单词复数/单数化(Active Admin,rails 3.2,ruby)