在Ruby中,使用正则表达式进行分组捕获时,需要在正则表达式中使用圆括号()
。圆括号会将匹配到的子字符串分组,并将整个分组捕获为一个变量。以下是一个简单的示例:
# 定义一个包含数字的字符串 str = "The price of the item is $10 and the discount is 20%." # 使用正则表达式匹配数字,并使用圆括号进行分组捕获 matched = str.match(/(\d+(?:\.\d{1,2})?)%?/).captures # 输出捕获到的分组 puts matched.inspect
在这个例子中,我们使用了正则表达式/(\d+(?:\.\d{1,2})?)%?/
来匹配字符串中的数字和百分比。圆括号()
将数字和百分比分组,并使用captures
方法获取捕获到的分组。
运行这段代码,你将得到以下输出:
["10", "20"]
这表示我们成功捕获了两个数字:10和20。注意,百分号%
在正则表达式中被转义为\%
,因为它在正则表达式中具有特殊含义。