簡體   English   中英

紅寶石子方法塊的正則表達式中的花括號

[英]Braces in regexp for ruby sub-method block

我有一個字符串:

s = "<aaa>bbb</ccc>"

我想在紅寶石塊中獲取aaa和bbb作為子方法。 如果我打電話給:

s.sub(/<([a-z]+)>([\s\S]+)<\/[a-z]+>/,"first=\\1 second=\\2")

一切都按我的預期進行,因此輸出為“ first = aaa second = bbb”。 然后,我用ruby-block調用相同的regexp,但是它只返回整個字符串,而不返回\\\\ 1和\\\\ 2部分:

s.sub(/<([a-z]+)>([\s\S]+)<\/[a-z]+>/) { |x,y| puts x; puts y; }

這個案例的輸出是

<aaa>bbb</ccc>, nil. 

如何在紅寶石塊中的\\\\ 1,\\\\ 2之類的括號中獲取子方法的句子?

sub產生的字符串將始終是完整匹配項。 要獲取這些捕獲,可以在塊內使用$1$2

暫無
暫無

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

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