在命名捕获中切换正则表达式选项

时间:2013-06-01 17:31:59

标签: ruby regex

在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

1 个答案:

答案 0 :(得分:3)

你也可以这样做:

/(?<name>(?i)...)/

AFIK,就是这样!