gpt4 book ai didi

regex - Sublime Text 2 - 正则表达式搜索 - 非捕获组语法

转载 作者:行者123 更新时间:2023-12-01 09:30:04 24 4
gpt4 key购买 nike

我正在尝试在搜索和替换中使用 ST2 的正则表达式功能,但不知道如何创建一个非捕获组。对于这个例子,我想找到 not 后跟“UMBER”的“DEAN”实例,即区分“DEANCARE”和“DEANUMBER”

从我过去阅读和使用的内容来看,非捕获的语法应该是:

DEAN(?:UMBER)

应该匹配“DEANCARE”但“DEANUMBER”。然而,Sublime Text only 会发现“DEANUMBER”,就像我输入了一样:

DEAN(UMBER)

在第一个(或每个)不需要的字母上使用方括号是否有效:

DEAN[^U] 

但我仍然更喜欢使用组不匹配而不是用于其他目的,并且避免必须明确不匹配每个单独的字符。我是否有语法错误,或者 ST2 的正则表达式如何工作的概念错误?

最佳答案

非捕获组与组相同,只是它不捕获反向引用中正则表达式的匹配部分。

如果您要在字符串 DEANUMBER 上使用正则表达式 DEAN(?:UMBER),那么您将得到匹配,但引用 \1 in,例如搜索和替换不会给你任何东西,因为该组是非捕获的。

另一方面,您可以使用 DEAN(UMBER) 进行搜索并替换为 made of L\1 这将产生 made of LUMBER 因为第一个(捕获)组的匹配被 \1 反向引用。这当然是一个非常没有意义的例子,如果你想了解更多关于组和反向引用的信息,我建议你阅读 this或有关此事的其他一些文档/教程。

正如评论中所建议的,您想要的是 negative lookahead .

关于regex - Sublime Text 2 - 正则表达式搜索 - 非捕获组语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16524665/

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