采取以下正则表达式:
P[0-9]{6}(\s|\.|,)
这是为了检查一个字符串中以“P”开头的6位数字 – 大部分工作正常.
问题是,如果发现多个匹配,我们需要失败 – 这可能吗?
即,使以下屏幕截图中的文本4失败,但仍然保持所有其他人失败/通过,如下所示:
(此RegEx正在sql .net CLR中执行)
解决方法
如果此工具使用的正则表达式引擎确实是.NET引擎,那么您可以使用
^(?:(?!P[0-9]{6}[\s.,]).)*P[0-9]{6}[\s.,](?:(?!P[0-9]{6}[\s.,]).)*$
如果它是本机sql引擎,那么您无法使用单个正则表达式匹配,因为这些引擎不支持环绕声断言.
说明:
^ # Start of string (?: # Start of group which matches... (?!P[0-9]{6}[\s.,]) # unless it's the start of Pnnnnnn... . # any character )* # any number of times P[0-9]{6}[\s.,] # Now match Pnnnnnn exactly once (?:(?!P[0-9]{6}[\s.,]).)* # Match anything but Pnnnnnn $ # until the end of the string
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。