簡體   English   中英

如何在ruby中的方括號內提取內容

[英]How to extract content within square brackets in ruby

我試圖提取方括號內的內容。 到目前為止,我一直在使用它,這有效,但我想知道,而不是使用這個刪除功能,如果我可以直接使用正則表達式中的東西。

a = "This is such a great day [cool awesome]" 
a[/\[.*?\]/].delete('[]') #=> "cool awesome"

幾乎。

a = "This is such a great day [cool awesome]"
a[/\[(.*?)\]/, 1]
# => "cool awesome"
a[/(?<=\[).*?(?=\])/]
# => "cool awesome"

第一個依賴於提取組而不是完全匹配; 第二個利用前瞻和后視來避免最終比賽中的分隔符。

您可以使用正則表達式使用Regexp#=~來執行此操作。

/\[(?<inside_brackets>.+)\]/ =~ a 
  => 25

inside_brackets
  => "cool awesome"

這樣你就可以將inside_brackets分配給匹配正則表達式的字符串(如果有的話),我認為它更具可讀性。

注意:小心將正則表達式放在左側。

暫無
暫無

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

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