ruby正则表达式 – 如何匹配一切直到角色 –
给出如下字符串:
randomstring1-randomstring2-3df83eeff2
我怎样才能使用ruby正则表达式或其他一些ruby / rails友好方法来查找所有内容,直到第一个破折号 –
在上面的示例中,它将是: randomstring1
谢谢
你可以使用这种模式: ^[^\-]*
mystring = "randomstring1-randomstring2-3df83eeff2" firstPart = mystring[0, mystring.index("-")]
否则,我认为最好的正则表达式是@ polishchuk。
它从字符串的开头匹配,尽可能多地匹配任何不是破折号的东西-
。
使用irb你也可以这样做:
>> a= "randomstring1-randomstring2-3df83eeff2" => "randomstring1-randomstring2-3df83eeff2" >> a.split('-').first => "randomstring1" >>
对于这种情况,agent-j给出的索引解决方案可能更好。 如果你确实想要使用正则表达式,那么下面的非贪婪(由?
指定)正则表达式会抓住它:
(^.*?)-
你可以在Rubular中看到它。