【发布时间】:2017-02-22 16:02:25
【问题描述】:
我正在使用 Rails 5。我在编写正则表达式时遇到问题。我想写一个表达式来解析一个字符串,寻找一个正数,然后是数字后面的第一个单词,无论数字和下一个单词之间是否有空格或其他类型的单词边界。所以我尝试了
2.4.0 :006 > str = "2g"
=> "2g"
2.4.0 :007 > str.match(/\W?(([0-9]+(\.[0-9]+)?)\W*(^[0-9:\/]+))/)
=> nil
但是你可以看到没有匹配发生。我希望比赛能捕捉到“2”,然后是“g”。同样,如果我有一个类似
的字符串2.4.0 :008 > str = "12.2 word next"
=> "12.2 word next"
2.4.0 :009 > str.match(/\W?(([0-9]+(\.[0-9]+)?)\W*(^[0-9:\/]+))/)
=> nil
我希望正则表达式能够捕获“12.2”,然后是下一个单词“word”。但正如你所看到的,我的正则表达式并没有削减它。如何修复它以捕获我需要的内容?
【问题讨论】:
-
试图在“12.2 word next”中选择“12.2word”或“12.2 word”?
-
我想要一些可以选择数组的东西——第一个元素是数字“12.2”,第二个元素是单词“word”(即 ["12.2", "word "])
-
您可以在我编辑的答案@Dave 中找到它
标签: ruby-on-rails regex numbers ruby-on-rails-5