gpt4 book ai didi

如果找到多个匹配项,正则表达式将失败

转载 作者:行者123 更新时间:2023-12-05 01:02:11 24 4
gpt4 key购买 nike

采用以下正则表达式:

P[0-9]{6}(\s|\.|,)

这旨在检查字符串中以“P”开头的 6 位数字 - 大多数情况下都可以正常工作。

问题是,我们需要到 失败 如果找到多个匹配项 - 这可能吗?

即使以下屏幕截图中的文本 4 失败,但仍保持所有其他失败/通过,如图所示:

enter image description here

(此 RegEx 正在 SQL .net CLR 中执行)

最佳答案

如果这个工具使用的正则引擎确实是.NET引擎,那么你可以使用

^(?:(?!P[0-9]{6}[\s.,]).)*P[0-9]{6}[\s.,](?:(?!P[0-9]{6}[\s.,]).)*$

如果它是 native 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

测试一下 live on regex101.com .

关于如果找到多个匹配项,正则表达式将失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26892864/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com