Ответ 1
Вы можете использовать этот шаблон: ^[^\-]*
задайте строку следующим образом:
randomstring1-randomstring2-3df83eeff2
Как я могу использовать румяное регулярное выражение или какой-нибудь другой дружественный метод ruby /rails, чтобы найти все до первой тире -
В приведенном выше примере: randomstring1
Спасибо
Вы можете использовать этот шаблон: ^[^\-]*
mystring = "randomstring1-randomstring2-3df83eeff2"
firstPart = mystring[0, mystring.index("-")]
В противном случае я думаю, что лучшим регулярным выражением является @polishchuk's.
Он соответствует началу строки, соответствует как можно больше всего, что не является тире -
.
Используя irb, вы также можете сделать это:
>> a= "randomstring1-randomstring2-3df83eeff2"
=> "randomstring1-randomstring2-3df83eeff2"
>> a.split('-').first
=> "randomstring1"
>>
Для этой ситуации решение индекса, заданное агентом-j, вероятно, лучше. Если вы хотите использовать регулярные выражения, следующее не-жадное (указанное ?
) regex захватит его:
(^.*?)-
Вы можете увидеть его в Rubular.