第 12 课:嵌套分组

当您处理复杂数据时,您可能会发现自己需要提取多层信息,这可能导致嵌套分组。通常,捕获组的结果按照其定义顺序(按左括号顺序)排列。

以上一课中捕获列表中所有图像文件的示例为例。如果每个图像文件的文件名中都有一个顺序的图片编号,则可以通过编写类似于 ^(IMG(\d+))\.png$ 的表达式(使用嵌套括号捕获数字)来提取文件名和图片编号。

嵌套分组在模式中从左到右读取,第一个捕获组是第一个括号组的内容,依此类推。

对于以下字符串,编写一个匹配并捕获完整日期以及日期年份的表达式。

练习 12:匹配嵌套分组
任务 文本 捕获组  
捕获 Jan 1987 Jan 1987 1987 To be completed
捕获 May 1969 May 1969 1969 To be completed
捕获 Aug 2011 Aug 2011 2011 To be completed
解决方案

此表达式需要捕获数据的两个部分,年份和整个日期。这需要使用嵌套捕获组,如表达式 (\w+ (\d+)) 中所示。

或者,我们可以使用 \s+ 代替空格,以捕获月份和年份之间任意数量的空白字符。

解决上述任务以继续下一题,或阅读 解决方案