在Ruby的正则表达式中,您可以使用以下语法来命名捕获组:
/(?<name>…)/
您可以使用以下语法,在非捕获组内切换m/i/x选项的开/关:
/(?i:[a-z])/
有没有一种方法可以将这两个组合成一个单一的组?
所有这些都可以工作,但我想知道是否有更简单的选项:
/(?i:(?<name>…))/ # case-insensitive just within the region
/(?<name>(?i:…))/ # case-insensitive just within the region
/(?i)(?<name>…)(?-i)/ # case-insensitive turned on, then turned off
"AaAbB"[ /(?<a>(?i)a*)(?<b>b*)/ ] #=> "AaAb"
- Phrogz