当前位置:  开发笔记 > 编程语言 > 正文

如果字符串的前面没有某些字符,我该如何匹配?

如何解决《如果字符串的前面没有某些字符,我该如何匹配?》经验,为你挑选了1个好方法。

我创建了以下正则表达式模式,试图匹配长度为6个字符的字符串,以"PRI"或"SEC"结尾,除非string ="SIGSEC".例如,我想匹配ABCPRI,XYZPRI,ABCSEC和XYZSEC,但不匹配SIGSEC.

(\w{3}PRI$|[^SIG].*SEC$)

这是非常接近和一些工作(如果我传入"SINSEC",它返回"NSEC"的部分匹配),但我对它的当前形式没有很好的感觉.此外,我可能需要在"SIG"之后添加更多排除项,并意识到这可能不会扩展得太好.有任何想法吗?

顺便说一句,我在C#中使用System.Text.RegularExpressions.Regex.Match()

谢谢,Rich



1> Dan..:

假设你的正则表达式引擎支持负向前瞻,试试这个:

((?!SIGSEC)\w{3}(?:SEC|PRI))

编辑:一位评论者指出.NET确实支持负向前瞻,所以这应该可以正常工作(谢谢,查理).

推荐阅读
mobiledu2402851173
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有