创建一个正则表达式只接受一组特定的字符串

时间:2011-03-12 22:44:51

标签: regex

我需要有一个REGEX,它会过滤掉,只接受某些字符串组,或者在我的情况下,接受代码。

这就是我所拥有的,它有效,但似乎不是最聪明的方法。

/^[046R,047R,048R,049R,050R,051R\ ]+$/

现在,我可以接受的代码列表是从'046R'到'089R'的任何地方(046到089是顺序的)。所以我可以明确地写出我表达中接受的所有代码(正如我从上面开始的那样)但是有一个更好的方法可以肯定 有什么想法吗?

感谢。

2 个答案:

答案 0 :(得分:2)

^0(?:4[6-9]|[5-8]\d)R$

应该做的伎俩。你必须在04x上设置独占,但5-8x非常通用。

<强> Demo

用于捕捉,括在括号内:

^(0(?:4[6-9]|[5-8]\d)R)$

答案 1 :(得分:2)

救援范围:

/^(04[6-9]R|0[5-8][0-9]R) +$/

实例:http://www.rubular.com/r/Bfnm4Tj7hT