我试图检查字符串的长度是否为3,是否有唯一的大写字符,后面是4位年份(从1900年到2019年),我想出了下面的表达式,但无法确定字符串是否有重复字符。有人能帮我修一下吗?
^(?:([A-Z]{3})(?!.*\1))(19\d{2}|20[0-1]\d)$
例子:ABC1990 should be matched and Group1 as ABC and Group2 as 1990 ABB1900,ABA2000,ATA1990,ATRV2010 should be failed
ABB1900,ABA2000,ATA1990,ATRV2010 should be failed
iszxjhcz1#
原始问题:您可以使用以下正则表达式:
^(?:([A-Z])(?!.*\1)){3}$
正则表达式演示正则表达式详细信息: ^ :开始 (?: :启动非捕获组 ([A-Z]) :匹配大写字母并在组#1中捕获 (?!.*\1) :反向向前看,确保前面没有重复的同一个字母 ){3} :结束非捕获组。 {3} 和其中3个匹配 $ :结束更新问题:根据您的更新问题,您可以使用此正则表达式匹配3个唯一的大写字母,后跟4位数的年份 1900 to 2019 .
^
(?:
([A-Z])
(?!.*\1)
){3}
{3}
$
1900 to 2019
^((?:([A-Z])(?![A-Z]*\2)){3})(19\d{2}|20[01]\d)$ ``` `(19\d{2}|20[01]\d)` 匹配从1900年到2019年的4位数年份 正则表达式演示2
1条答案
按热度按时间iszxjhcz1#
原始问题:
您可以使用以下正则表达式:
正则表达式演示
正则表达式详细信息:
^
:开始(?:
:启动非捕获组([A-Z])
:匹配大写字母并在组#1中捕获(?!.*\1)
:反向向前看,确保前面没有重复的同一个字母){3}
:结束非捕获组。{3}
和其中3个匹配$
:结束更新问题:根据您的更新问题,您可以使用此正则表达式匹配3个唯一的大写字母,后跟4位数的年份
1900 to 2019
.