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