Ruby 使用regexp进行捕获的帮助

Ruby 使用regexp进行捕获的帮助,ruby,regex,Ruby,Regex,我有以下清单: foo chef.rb baz bar cucumber.rb bar baz gem.rb foo 我想捕获所有没有.rb的名字 我当前的regexp如下所示: /([^\s](?:.)*?.(?:rb))/i 但它也捕获了.rb 如何仅捕获基本名称 谢谢。请改用此正则表达式: /(\w*?)\.rb\s*.*/i 您的基本姓名将在第一个捕获组中 请在上查看。这有点简单:/(\S+).rb(?:$\S)/ 任何非空格字符后跟.rb,后跟行尾或空格。Hmm奇怪,它应该会起作

我有以下清单:

foo chef.rb baz
bar cucumber.rb bar
baz gem.rb foo
我想捕获所有没有.rb的名字

我当前的regexp如下所示:

/([^\s](?:.)*?.(?:rb))/i
但它也捕获了.rb

如何仅捕获基本名称


谢谢。

请改用此正则表达式:

/(\w*?)\.rb\s*.*/i
您的基本姓名将在第一个捕获组中


请在上查看。

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


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

Hmm奇怪,它应该会起作用,我不知道为什么它会在basename中删除第一个字母:hef、ucumber、gem、it等等。@ajsie它不应该(参见链接)。你剩下的代码在哪里?@NullUserException:看看我的更新。我忘了告诉你文件名前后都有字母。你能自定义你的regexp吗?@ajsie Regex更新了,尽管现在我对它没有信心。您可能想要抛出一些测试用例。