Подтвердить что ты не робот

Ruby regex - как подобрать все до персонажа -

задайте строку следующим образом:

randomstring1-randomstring2-3df83eeff2

Как я могу использовать румяное регулярное выражение или какой-нибудь другой дружественный метод ruby ​​/rails, чтобы найти все до первой тире -

В приведенном выше примере: randomstring1

Спасибо

4b9b3361

Ответ 1

Вы можете использовать этот шаблон: ^[^\-]*

Ответ 2

mystring = "randomstring1-randomstring2-3df83eeff2"
firstPart = mystring[0, mystring.index("-")]

В противном случае я думаю, что лучшим регулярным выражением является @polishchuk's.

Он соответствует началу строки, соответствует как можно больше всего, что не является тире -.

Ответ 3

Используя irb, вы также можете сделать это:

>> a= "randomstring1-randomstring2-3df83eeff2"
=> "randomstring1-randomstring2-3df83eeff2"
>> a.split('-').first
=> "randomstring1"
>> 

Ответ 4

Для этой ситуации решение индекса, заданное агентом-j, вероятно, лучше. Если вы хотите использовать регулярные выражения, следующее не-жадное (указанное ?) regex захватит его:

(^.*?)-

Вы можете увидеть его в Rubular.