Regex 关于正则表达式中嵌套组的说明
我有下面的正则表达式:“Jan 1987”,我想把它拼接成两组:Regex 关于正则表达式中嵌套组的说明,regex,Regex,我有下面的正则表达式:“Jan 1987”,我想把它拼接成两组: 第一组应该匹配整个字符串 第二组应该只匹配年份 下面的表达式:(.+(\d+)创建第一个组,但第二个组仅匹配最后一个数字,如果我添加这样的空格(.+(\d+),则第二个组全年都正确匹配 有人能解释一下为什么吗 提前感谢。您最可能在此处使用的实际正则表达式如下所示: (?:Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) (\d{4}) 如果要访问整个匹配项,则这已经是整个字符串。根
(.+(\d+)
创建第一个组,但第二个组仅匹配最后一个数字,如果我添加这样的空格(.+(\d+)
,则第二个组全年都正确匹配
有人能解释一下为什么吗
提前感谢。您最可能在此处使用的实际正则表达式如下所示:
(?:Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) (\d{4})
如果要访问整个匹配项,则这已经是整个字符串。根据您使用的正则表达式工具/语言,您还可以访问第0个捕获组。4位数年份将在第一个捕获组中可用
此处最可能使用的实际正则表达式如下所示:
(?:Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) (\d{4})
如果要访问整个匹配项,则这已经是整个字符串。根据您使用的正则表达式工具/语言,您还可以访问第0个捕获组。4位数年份将在第一个捕获组中可用
下面的表达式:(.+(\d+)创建第一个组,但第二个组仅与最后一个数字匹配,如果我添加这样的空格(.+(\d+),则第二个组与全年正确匹配
有人能解释一下为什么吗
是的,因为这个术语+
是贪婪的,会一直匹配到最后一位数字,只有1才能满足整个匹配 通过添加空间需求,它告诉引擎必须找到
至少一个空格后跟一个数字,该数字在样本中只有一个位置,
因此,在正确的组中匹配月份,同样
这一年属于正确的一组 下面的表达式:(.+(\d+)创建第一个组,但第二个组仅与最后一个数字匹配,如果我添加这样的空格(.+(\d+),则第二个组与全年正确匹配 有人能解释一下为什么吗 是的,因为这个术语
+
是贪婪的,会一直匹配到最后一位数字,只有1才能满足整个匹配 通过添加空间需求,它告诉引擎必须找到
至少一个空格后跟一个数字,该数字在样本中只有一个位置,
因此,在正确的组中匹配月份,同样
这一年属于正确的一组