正则表达式验证&标记字符串

时间:2015-02-09 14:53:27

标签: regex validation tokenize

我正在尝试为特殊情况开发正则表达式:

它应该接受由'分隔的字符串。' (点):

  • 前四部分始终是STG.FTG.ADG.Common
  • 第五部分可以是由'分隔的一个或多个单词(字母数字),因此它可以是ABC,ABC.DEF.G,但它不能是三个字符串之一(IMAP) | SMTP | POP3)
  • 第六部分是以下3个字符串之一(IMAP | SMTP | POP3)
  • 第七,最后,部分是一个单词(字母数字)

我想出了这个:

^STG\.FTG\.ADG\.Common\.(?!>IMAP|SMTP|POP3)(?:[a-zA-Z0-9]+\.)*?(?:IMAP|SMTP|POP3)(?:\.[a-zA-Z0-9]+)$

并使用以下示例对其进行测试:

  • STG.FTG.ADG.Common.Testing.test.IMAP.word
  • STG.FTG.ADG.Common.Testing.test.IMAP
  • STG.FTG.ADG.Common.Testing.IMAP.word
  • STG.FTG.ADG.Common.Testing.IMAP.IMAP.word
  • STG.FTG.ADG.Common.Components.IMAP STG.FTG.ADG.Common.IMAP.test
  • STG.FTG.ADG.Common.IMAP.Tasdfa1566asdflksjad STG.FTG.ADG.Common.IMAP

第2,第4,第5和最后一个例子不应该被验证,除了被认为匹配的第4个(STG.FTG.ADG.Common.Testing.IMAP.IMAP.word)之外都不是,但是它不可能因为它有IMAP,它属于下一个元素。

关于如何解决此问题的任何想法?

谢谢

0 个答案:

没有答案