簡體   English   中英

Ruby從字符串文本中提取ID

[英]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.

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