如何在Ruby中获取字符串匹配regexp的特定部分?

Sim*_*tsa 11 ruby

我有一个字符串Unnecessary:12357927251data,我需要在冒号和数字后选择所有数据.我会用Regexp来做.

string.scan(/:\d+.+$/)
Run Code Online (Sandbox Code Playgroud)

这会给我:12357927251data,但我可以只选择所需的信息.+(data)吗?

mck*_*eed 20

在以正则表达式括号任何东西将被捕获为一组,它可以访问在$1,$2等,或通过使用[]一个匹配对象上:

string.match(/:\d+(.+)$/)[1]
Run Code Online (Sandbox Code Playgroud)

如果将扫描与捕获组一起使用,则将获得组的数组数组:

"Unnecessary:123data\nUnnecessary:5791next".scan(/:\d+(.+)$/)
=> [["data"], ["next"]]
Run Code Online (Sandbox Code Playgroud)