无法让Regex在ColdFusion中处理字符串

时间:2014-09-04 18:59:58

标签: regex coldfusion

我一直在努力想弄清楚如何在ColdFusion中使用一个有效的REGEX,并修改它以验证字符串是否包含某些字符。

有问题的正则表达式是:

^[A-Z][\dA-Z]{3,3}[A-Z]${5}

以下是我尝试验证字符串的测试:

  1. 必须是5位数字
  2. 第一个角色必须是alpha
  3. 最后一个角色必须是alpha
  4. 字符2-4可以是Alphas和Numerics的任意组合
  5. 不得包含字母O或I
  6. 我要验证的字符串格式应为: AZZZE

    所以,它应该通过 AZZZZ A123Z

    失败了 0A23Z I123Z 一个 A12345

    我似乎无法得到测试#5。

    我已经阅读了Adam Cameron关于正则表达式和CF(http://blog.adamcameron.me/2012/12/regular-expressions-in-coldfusion-part_22.html)的优秀帖子,他提到了#34;字符集否定"就这样:

      

    字符集否定   可以创建一个字符集,表示匹配除字符集中的内容之外的任何内容。 >这是通过使用^作为NOT运算符来实现的:

         

    " C [^即] T"将匹配" cat"," cot"和" cut" (和" c_t"之类的东西),但是特别不匹配" cit"和" cet"。

    所以我试了一些......

    ^(O|I)[A-Z][\dA-Z]{3,3}[A-Z]${5}
    

    但现在它无法测试是否有O或I。

    如果字符串中有O或我出现,我似乎无法让它失败。

    如果O或I存在,如何让Regex(reFind,reFindNOCase,IsValid)实际指示字符串无效?

    我承认,我非常喜欢这个东西。救命啊!

1 个答案:

答案 0 :(得分:0)

你可能想写:

^[A-HJ-NP-Z][A-HJ-NP-Z0-9]{3}[A-HJ-NP-Z]$