2016-12-09 142 views
0

我刚刚得知正则表达式的基本知识,并拿出了以下正则表达式正则表达式,匹配模式“1AA11AA111”

"^\\d[a-zA-Z]{2}\\d{2}[a-zA-Z]{2}\\d{3}$" 

到指定的模式相匹配。它工作绝对好。我的问题是,还有哪些其他的替代方法可以实现?

+0

定义越好..在处理速度更快?更少的字符?更容易理解? – brandonscript

+0

任何事情......因为我正在学习......我想了解替代解决方案。 –

+0

然后说“有什么其他的解决方案来匹配这种模式”,而不是“有没有更好的方法”。 – brandonscript

回答

6

您可以使用捕捉组和背部引用它们

Regex Demo

(\d)([A-Z])\2\1{2}\2{2}\1{3} 

(\d):抓住一个数字

([A-Z]):捕获单词,1

([A-Z])\2 => \2长度:赛第二发现组,1次发现与([A-Z])

\1{2}:匹配第一发现组,1次,其被发现与(\d)

\2{2}:匹配第二发现组,其被发现与([A-Z])

\1{3} 2次:匹配第一发现组,3倍,其发现与(\d)

注:\1\2就像是给集团的身份()

更新:捕捉特定的情况下,敏感字符,就避免了不区分大小写的标志即/i或只捕捉特定类型的使用([a-z])([A-Z])哪个更好,因为\w意味着捕捉这些a-zA-Z0-9_

+1

具体捕获组_and_反向引用 – brandonscript

+0

@brandonscript谢谢,我对它 –

+0

(\ w)匹配数字以及。我不想那样。它只适用于大写/小写字母。 –