:红宝石正则表达式 - 如何一切都匹配,直到字符 - 给出一个字符串如下
randomstring1-randomstring2-3df83eeff2
如何使用红宝石正则表达式或一些其它的Ruby/Rails友好的方法来找到一切,直到第一破折号 -
在上面的例子将是:randomstring1
由于
:红宝石正则表达式 - 如何一切都匹配,直到字符 - 给出一个字符串如下
randomstring1-randomstring2-3df83eeff2
如何使用红宝石正则表达式或一些其它的Ruby/Rails友好的方法来找到一切,直到第一破折号 -
在上面的例子将是:randomstring1
由于
mystring = "randomstring1-randomstring2-3df83eeff2"
firstPart = mystring[0, mystring.index("-")]
否则,我认为最好的正则表达式是@ polishchuk's。
它匹配从字符串的开头,尽可能匹配任何不是破折号的东西-
。
您可以使用此模式:^[^\-]*
+1最佳的正则表达式最好的解决办法,在我看来。 –
@ agent-j,嗯...... :-) –
Tsk ...额外的反斜杠。 :)当Dash不是字符类中的第一个字符时,它不需要被转义(开头的脱字符号不被视为类中的字符,而是类修饰符,具体意思是“Not”,如“Not any这些字符在这个类“ – JBB
使用内部评级法,你也可以这样做:
>> a= "randomstring1-randomstring2-3df83eeff2"
=> "randomstring1-randomstring2-3df83eeff2"
>> a.split('-').first
=> "randomstring1"
>>
+1,没有正则表达式 –