正则表达式在 Ruby 中的应用与实践
1. 捕获组(Capture Groups)
正则表达式基本语法的最后一个元素是能够对匹配的部分进行分组。例如,要匹配英国电话号码,其格式是五位区号加六位号码,并且希望分别捕获区号和电话号码。
1.1 分组匹配示例
- 匹配格式的正则表达式:
/\d{5}\s*\d{6}/,表示五位数字,可选的空白字符,然后是六位数字。 - 分组后的正则表达式:
/(\d{5})\s*(\d{6})/,使用括号将匹配元素分组。 - 命名分组:使用
?<name>语法,如/(?<area_code>\d{5})\s*(?<number>\d{6})/,这样在匹配后访问分组更清晰,如match[:area_code]和match[:number]。
1.2 交替匹配
捕获组的另一个特性是能够执行交替匹配,即匹配一个或另一个字符串。例如,匹配 “hello there” 和 “hi there”,可以使用 / (hello|hi) there/ 。也可以在整个模式中使用交替,如 /this|that/ 。
2. Ruby 中的正则表达式
在 Ruby 中,正则表达式是一等公民,有自己的语法( //
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



