Regex 用于验证的正则表达式&;标记化字符串

Regex 用于验证的正则表达式&;标记化字符串,regex,validation,tokenize,Regex,Validation,Tokenize,我试图为一个特殊情况开发一个正则表达式: 它应该接受由“.”(点)分隔的字符串: 前四部分始终是STG.FTG.ADG.Common 第五部分可以是由“.”分隔的一个或多个单词(字母数字),因此可以是ABC、ABC.DEF.G,但不能是三个字符串之一(IMAP | SMTP | POP3) 第六部分是以下三个字符串之一(IMAP | SMTP | POP3) 第七,也是最后一部分是一个单词(字母数字) 我想到了这个: ^STG\.FTG\.ADG\.Common\.(?!>IMAP|S

我试图为一个特殊情况开发一个正则表达式:

它应该接受由“.”(点)分隔的字符串:

  • 前四部分始终是STG.FTG.ADG.Common
  • 第五部分可以是由“.”分隔的一个或多个单词(字母数字),因此可以是ABC、ABC.DEF.G,但不能是三个字符串之一(IMAP | SMTP | POP3)
  • 第六部分是以下三个字符串之一(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
第二个、第四个、第五个和最后一个示例不应进行验证,除了第四个(STG.FTG.ADG.Common.Testing.IMAP.IMAP.IMAP.word),它被认为是匹配的,但不能进行验证,因为它有属于下一个元素的IMAP

有没有办法解决这个问题


谢谢你

正则表达式的创新标题是什么a@anubhava我忘了编辑标题,谢谢你你用的是什么风格的正则表达式?@JNYRanger C#flavour@AndyLester你好,安迪,事实上我最后被“.”分开了,你说得对,正则表达式在这方面不是一个好方法!谢谢你的帮助!