簡體   English   中英

ruby 正則表達式 - 如何匹配直到字符的所有內容 -

[英]ruby regex - how to match everything up till the character -

給定一個字符串如下:

randomstring1-randomstring2-3df83eeff2

我如何使用 ruby 正則表達式或其他一些對 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"
>> 

對於這種情況,agent-j 給出的索引解決方案可能會更好。 如果您確實想使用正則表達式,則以下非貪婪(由?指定)正則表達式會抓住它:

(^.*?)-

您可以在Rubular中看到它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM