Ruby正則表達(dá)式怎樣實(shí)現(xiàn)分組捕獲

小樊
81
2024-10-24 08:01:28

在Ruby中,使用正則表達(dá)式進(jìn)行分組捕獲時(shí),需要在正則表達(dá)式中使用圓括號(hào)()。圓括號(hào)會(huì)將匹配到的子字符串分組,并將整個(gè)分組捕獲為一個(gè)變量。以下是一個(gè)簡(jiǎn)單的示例:

# 定義一個(gè)包含數(shù)字的字符串
str = "The price of the item is $10 and the discount is 20%."

# 使用正則表達(dá)式匹配數(shù)字,并使用圓括號(hào)進(jìn)行分組捕獲
matched = str.match(/(\d+(?:\.\d{1,2})?)%?/).captures

# 輸出捕獲到的分組
puts matched.inspect

在這個(gè)例子中,我們使用了正則表達(dá)式/(\d+(?:\.\d{1,2})?)%?/來(lái)匹配字符串中的數(shù)字和百分比。圓括號(hào)()將數(shù)字和百分比分組,并使用captures方法獲取捕獲到的分組。

運(yùn)行這段代碼,你將得到以下輸出:

["10", "20"]

這表示我們成功捕獲了兩個(gè)數(shù)字:10和20。注意,百分號(hào)%在正則表達(dá)式中被轉(zhuǎn)義為\%,因?yàn)樗谡齽t表達(dá)式中具有特殊含義。

0