1

我现在一直在寻找 RegEx 帮助,但我认为我需要一个专业人士来帮助我。我认为这可以通过 RegEx 实现,但无法弄清楚如何。

这是我正在寻找的比赛。如果它不完全符合这个我想知道:

\w{2,4}\s\d{4}

我基本上想匹配常见的学校课程名称。要求如下:

  1. 第一部分是2-4个字母
  2. 第二部分正好是 4 个数字
  3. 两者之间必须有空格

如果对此有任何其他变化,我想阻止我的下一段代码运行。我可以轻松地修剪左右端的空格,但我想确保那里没有其他东西。

我的问题是我当前的表达式允许有人输入 COMD 1500-B。我仍然得到匹配,我明白为什么,但我想确保如果有人输入超过 4 个数字,我可以停止并抛出错误。以及超过4个字母。我认为{}应该是最大的。

4

2 回答 2

1

^表示字符串的开头,并$表示字符串的结尾。因此,^\w{2,4}\s\d{4}$确保整个字符串与模式匹配,而不仅仅是字符串匹配的子集。

于 2012-10-12T22:34:38.050 回答
0

你应该使用正则表达式模式

^[a-zA-Z]{2,4}\s+\d{4}$

如果只允许大写字母,则使用正则表达式模式

^[A-Z]{2,4}\s+\d{4}$

如果只允许一个空格字符,则替换\s+\s. 如果这样的空间只是空格键字符(是的,我们有更多的空格字符),那么\s用空格键字符替换

^[A-Z]{2,4} \d{4}$
于 2012-10-12T22:47:57.960 回答