[英]Ruby extract id from a string text
我對Ruby很陌生,並且對從字符串中提取某些內容有疑問。
我有一個具有以下值的字符串。
Booking ID: 101 Name: Booking
我需要從該字符串中提取ID。
步驟應該類似於從第一次出現的“ ID [space]”到下一個[space]提取字符串。
有沒有辦法在Ruby中做到這一點?
正確的方法是使用Regex
找到“ Booking ID:”之后的數字
booking_title = "Booking ID: 101 Name: Booking"
bookind_id = booking_title.match(/(?:Booking ID:\s)([\d]+)/)
查找字符串中的第一個數字
booking_title = "Booking ID: 101 Name: Booking"
bookind_id = booking_title.match(/[\d]+/)
較短的語法
booking_title = "Booking ID: 101 Name: Booking"
bookind_id = booking_title[/[\d]+/]
您可以使用正則表達式:
irb
irb(main):001:0> "Booking ID: 101 Name: Booking".match /\d+/
=> #<MatchData "101">
irb(main):002:0> "Booking ID: 101 Name: Booking".match(/\d+/).to_s
=> "101"
您也可以通過拆分來做到這一點,正則表達式依賴於預訂ID:....名稱:....的單詞始終相同,並且以下內容也應相同:
text = "Booking ID: 101 Name: Booking"
booking_id = text.split(":")[1].split("Name")[0].to_i # 101
要么
booking_id = text.split(":")[1].strip.split(" ")[0].to_i
您有很多方法可以做到這一點。
booking_title = "Booking ID: 101 Name: Booking"
booking_id = booking_title.scan(/\d/).join('')
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.