首页 > 解决方案 > 如何在 VSCode 的搜索和替换中匹配不包含字符串的字符串?

问题描述

如何在 VSCode 的搜索和替换中匹配不包含字符串的字符串?
我在谷歌上搜索到的所有内容(甚至在这里)要么是如何通过编程来完成它,要么是如何
匹配不包含单个字符的字符串,
要么是与 VSCode 的正则表达式处理不兼容。
这个问题没有回答我的问题。
这个问题是专门通过编程提出的。
我上次询问时已经说过相关/不适用,以及为什么该方法不相关/不适用。
我不应该用这个编辑重新发布,因为原来已经说明了为什么这个问题没有帮助。
但我需要这样做来匹配不包含字符串的字符串,而不是其中的单个字符。
我还需要使用正则表达式将所述字符串与其自身匹配。

我的应用程序。
我需要匹配除此匹配的字符串之外的所有内容。
recipes.add(有形|无形)\((.+), \[((<(.+)>|null)|(<(.+)>|null), (<(.+)>|null) |(<(.+)>|null), (<(.+)>|null), (<(.+)>|null)|(<(.+)>|null), (<(.+ )>|null), (<(.+)>|null), (<(.+)>|null))\]\);

标签: regexvisual-studio-code

解决方案


你的问题有点过于宽泛,没有具体的例子,但基本上你可以做的事情是避免使用子字符串:

START(?:(?!WHATIWANTTOAVOID).)*END

或获得最短的匹配:

START(?:(?!WHATIWANTTOAVOID).)*?END

这个想法是,对于 START 和 END 之间的每个位置, WHATIWANTTOAVOID 使用负前瞻(不跟随)进行测试。

前瞻是不消耗字符的零宽度断言,因此在示例中,前瞻和.(点)在主题字符串中的相同位置进行测试。


推荐阅读