标签: ruby regex
我有这个清单:
foo chef.rb baz bar cucumber.rb bar baz gem.rb foo
我想要在没有.rb的情况下捕获所有名称。
我目前的正则表达式如下:
/([^\s](?:.)*?.(?:rb))/i
但它也捕获了.rb。
如何仅捕获基本名称?
感谢。
答案 0 :(得分:2)
请改用此正则表达式:
/(\w*?)\.rb\s*.*/i
您的基名将在第一个捕获组中。
在rubular上查看。
答案 1 :(得分:0)
这有点简单:/(\S+).rb(?:$|\s)/
/(\S+).rb(?:$|\s)/
任何非空格字符后跟.rb,后跟行尾或空格。