首页 > 解决方案 > 我需要一个正则表达式在 Visual Studio 代码中搜索以特定字符串开头的单词,后跟不同但不包括 3 个特定情况的字母

问题描述

我需要在我的项目中搜索所有以字符串“use”开头的单词,后跟任何大写字母,除了这三种情况:

有效的搜索是:

和无效搜索:

除了上面提到的3个字符串。

这是我所能做到的,但在 vscode 中,它的行为似乎与任何正则表达式检查器不同,我真的不知道从哪里开始:

^(?!useRef)(use.*)

标签: regexvisual-studio-code

解决方案


您可以使用以下正则表达式:

\buse(?!(?:Ref|Effect|State)\b)[A-Z][a-zA-Z]*\b

请参阅此正则表达式演示

图案细节

  • \b- 单词边界
  • use- 一个use字符串
  • (?!(?:Ref|Effect|State)\b)- 如果存在,则匹配失败的否定前瞻RefEffectState紧跟在当前位置右侧的单词边界的子字符串
  • [A-Z]- 一个大写的 ASCII 字母
  • [a-zA-Z]*- 任何零个或多个 ASCII 字母
  • \b- 单词边界。

正则表达式图

在此处输入图像描述


推荐阅读