gpt4 book ai didi

正则表达式 - 如何防止任何以 "de"开头但不能使用前视或后视的字符串?

转载 作者:行者123 更新时间:2023-12-02 02:30:28 25 4
gpt4 key购买 nike

我有一个正则表达式

[a-zA-Z][a-z]

我必须更改此正则表达式,以便正则表达式不接受以“de”、“DE”、“dE”和“De”开头的字符串。我无法使用后视或前视,因为我的系统不支持是吗?

最佳答案

有一个没有前瞻或后瞻的解决方案,但您需要能够使用组。

其想法是创建一种“蜜 jar ”,它将匹配您的负面结果并仅保留您感兴趣的结果。

在你的情况下,会写:

[dD][eE].*|(<your-regex>)

如果命题是de<anything> (此处不区分大小写),它将匹配,但 group(1) 将是 null .

另一方面,例如匹配 diZ 将匹配不匹配 or 之前的内容,因此会落入 group(1) 中。 .

最后,如果命题不是以 de 开头并且与您的正则表达式不匹配,那么,根本不会有任何组。

如果您需要确保您的命题与提供的整个字符串相匹配,您可以这样更新正则表达式:

^(?:[dD][eE].*|(<your-regex>))$

请注意?:不是任何类型的前瞻,它用于将组标记为非捕获,以便 <your-regex>仍会被 group(1) 捕获(否则会变成group(2),并且从性能角度来看,捕获一个组并不总是一个透明的操作)。

关于正则表达式 - 如何防止任何以 "de"开头但不能使用前视或后视的字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65121216/

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