javascript正则表达式-如何简化
我正在读一个javascript文件,它没有什么问题,我遇到了一个正则表达式,它看起来像javascript正则表达式-如何简化,javascript,regex,Javascript,Regex,我正在读一个javascript文件,它没有什么问题,我遇到了一个正则表达式,它看起来像 /^(a|b|c|d|e|f|g|h|i|j|k|l|m|n|o|p|q|r|s|t|u|v|w|x|y|z){3}\d{3}|(a|b|c|d|e|f|g|h|i|j|k|l|m|n|o|p|q|r|s|t|u|v|w|x|y|z){3}(a|b|c|d|e|f|g|h|i|j|k|l|m|n|o|p|q|r|s|t|u|v|w|x|y|z){0,1}$/; 首先,它实际上匹配什么,我如何简化它,这在
/^(a|b|c|d|e|f|g|h|i|j|k|l|m|n|o|p|q|r|s|t|u|v|w|x|y|z){3}\d{3}|(a|b|c|d|e|f|g|h|i|j|k|l|m|n|o|p|q|r|s|t|u|v|w|x|y|z){3}(a|b|c|d|e|f|g|h|i|j|k|l|m|n|o|p|q|r|s|t|u|v|w|x|y|z){0,1}$/;
首先,它实际上匹配什么,我如何简化它,这在功能上类似于:
/^([a-z]){3}\d{3}|([a-z]){3}([a-z]){0,1}$/;
这基本上包括:
- 从字符串的开头开始
- a-z范围内的3个字符后跟3位数字,或
- 在a-z范围内输入3个字符,然后在a-z范围内输入0或1个字符
.
@kaldoran:不。只是[a-z]
。。。嗯,正则表达式有字符类。例如[a-z]{3}
获取3个a到z字符。这些管道更多地用于分隔单词。我认为你不再需要()
,因为它们在哪里才能应用|
@kaldoran:取决于它们使用它的目的(例如,它们是否使用了捕获组)。如果它是一个非捕获组(?:a | b |…)
,那么它肯定是不必要的。@kaldoran:如果它们被用作捕获组,你需要它。