这个代码对'匹配'和正则表达式有什么问题?

时间:2014-12-04 14:22:25

标签: ruby-on-rails ruby regex

我有一个类似的字符串:

ABC:Something|Hello World 

我想要' |'之后的数据因此我正在使用正则表达式。

sample_str = "ABC:Something|Hello World"
puts sample_str.match(/[^|]*$/)

这适用于rubular并让我回归&#34; Hello World&#34;作为输出,但在我的ruby代码中不起作用。我在这里错过了什么?我在Ruby中得到#<MatchData "">

更新:没关系。如果我使用正则表达式并在字符串上匹配它现在工作。我是以其他方式做的,即我做(regex).match(string)而不是(string).match(regex)

感谢您的期待!

2 个答案:

答案 0 :(得分:7)

使用正则表达式似乎过分:

string.split('|').last

答案 1 :(得分:0)

以下正则表达式可以帮助您。

^[\S\s]+?\|([\w\s]+)$

别忘了选择globalmultiline选项。

查看regex demo here