首页 > 解决方案 > 具有固定组的特定正则表达式

问题描述

我刚开始学习正则表达式,我需要一个固定的字符串和一些其他固定条件,例如:

VATICAN-Application-Necropolis-ABC-ABC-<a-zA-z>

ABC 必须始终为 3 个大写字符,破折号也必须在那里,最后一部分可以是大写和小写。我有这个

\bVATICAN-Application-Necropolis-([A-Z]+(?:-[a-zA-Z]+){2})(?!\S)

但是那个让NNC部分超过 3 个字符,而另一部分不强制只使用 3 个大写字母。我试过了

\bVATICAN-Application-Necropolis-([A-Z]+(?:-[A-Z]+){2})(?!\S)

但这行不通。

例如: VATICAN-Application-SPS-LMD-Supervisor应该匹配,VATICAN-Application-SPSP-LMD-Supervisor不应该,因为 SPSP 的长度不是 3 个字符。两者都不应该VATICAN-Application-SPS-LMSD-Supervisor匹配,因为 LMSD 不是 3 个字符长。如果其中有小写字母,则相同。

有任何想法吗?

谢谢。

标签: regex

解决方案


\bVATICAN-Application-(?:[A-Z]{3}-){2}

[A-Z]{3}恰好匹配 3 个大写字母,并且后面跟着它,-所以它后面不允许有额外的字母。然后这个组加倍{2}

演示


推荐阅读