帮助使用正则表达式进行捕获

时间:2010-09-12 03:44:05

标签: ruby regex

我有这个清单:

foo chef.rb baz
bar cucumber.rb bar
baz gem.rb foo

我想要在没有.rb的情况下捕获所有名称。

我目前的正则表达式如下:

/([^\s](?:.)*?.(?:rb))/i

但它也捕获了.rb。

如何仅捕获基本名称?

感谢。

2 个答案:

答案 0 :(得分:2)

请改用此正则表达式:

/(\w*?)\.rb\s*.*/i

您的基名将在第一个捕获组中。

rubular上查看。

答案 1 :(得分:0)

这有点简单:/(\S+).rb(?:$|\s)/

任何非空格字符后跟.rb,后跟行尾或空格。