【发布时间】:2023-03-17 07:40:01
【问题描述】:
我试图理解这个为签证卡编写的正则表达式,但我在理解分组和非捕获组时遇到了问题。
所有 Visa 卡号均以 4 开头。新卡有 16 位数字。旧卡有 13 个。
^4[0-9]{12}(?:[0-9]{3})?$
我理解这部分:
^4[0-9]{12}
和最后的问号(因为最后3位是可选的) 但我不明白为什么我们需要对最后一部分进行分组,如果我们这样做,为什么我们需要包含
?:
我的意思是如果还有 3 个数字我们需要捕获它们,那么我们为什么要使用非捕获组?
【问题讨论】:
标签: regex