正则表达式的小麻烦

Small trouble with a regular expression

我需要构建一个正则表达式,包含以下详细信息。正则表达式需要匹配以下字符结构:

OT-001-16

  1. OT:可以是大写也可以是小写,但是我只需要匹配O后跟[=​​14=],而不是T后跟O.
  2. -后面跟这个字符。
  3. 001 后跟 3 个或更多数字。
  4. -后面跟这个字符。
  5. 16 最后是准确的 2 个数字。

这是我试过的:

/([OT|ot]{2})-(\d{3,})-(\d{2})/g

这个正则表达式工作正常,除非我写 TO-0052-54,问题出在 OT 字符上,我只需要匹配 O 后跟 T.

谢谢,如有任何问题 post 评论。

通过使用 [OT|ot]{2} 你实际上是在比较一个字符串,该字符串具有长度为 2 的字符 O 或 o 和 T 或 t。这就像使用这样的东西。

[ABCD]{2} :匹配所有可能的字符组合。

要解决此问题,请使用 (OT|ot) 匹配此特定模式 OT 或 ot。