gpt4 book ai didi

.net - 反向正则表达式匹配

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

经过大量研究后,我找到了 SO community wiki据说在正则表达式中查看某些内容是否不匹配的最佳方法是执行以下操作:

^((?!hede).)*$

因此,以此为例,我尝试匹配括号中不是以字母 fe 或 Fe 开头的任何内容。我想到了这个:

\(((?!fe|Fe).+?)\)

它有效,但它似乎给了我两个匹配项,一个包含括号,一个没有括号。有人可以指出我做错了什么吗。

最佳答案

它不会给你两个匹配项。它只是为您提供第一个捕获组的完整匹配项。只需删除外面一对未转义的括号,第二个“匹配项”就会消失:

\((?!fe|Fe).+?\)

如果您稍后需要这些括号,但仍然不需要它会生成的捕获子字符串,您还可以使用 ?: 使括号成为非捕获:

\((?:(?!fe|Fe).+?)\)

这两个是等价的,只是后者略显多余。

此外,如果您想匹配一些分隔的内容,通常认为使用负字符类而不是非贪婪的重复是一种很好的做法:

\((?!fe|Fe)[^)]+\)

(这应该是等价的)

关于.net - 反向正则表达式匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13110897/

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