gpt4 book ai didi

regex - 生成正则表达式以排除路径中的字符串

转载 作者:行者123 更新时间:2023-12-04 16:29:56 26 4
gpt4 key购买 nike

我正在尝试编写一个正则表达式,其中包括所有以“src”开头的“component.ts”文件,但排除那些在其文件路径中具有“debug”文件夹的文件

(src\/.*[^((?!debug).)*$]/*.component.ts)

我正在 regex101 测试仪上测试以下字符串:

src/abcd/debug/xtz/component/ddd/xyz.component.ts

src/abcd/arad/xtz/xyz.component.ts

这两个字符串都给出了完美匹配,即使第一个字符串在其路径中有“调试”。我哪里错了?

最佳答案

您在 character class [^((?!debug).)*$] 中指定了一个否定的前瞻 (?! ,它只会匹配字符类中的字符。

您可以做的是将否定前瞻移到开头,以断言后面的不是 /debug/debug/:

^(?!.*\/debug\/)src\/.*component\.ts$

说明

  • ^ 断言行首
  • (?!.*\/debug\/) 否定前瞻断言后面的不是 /debug/
  • src 字面匹配
  • \/.*component\.ts 匹配正斜杠后跟任意字符零次或多次后跟 .ts
  • $ 断言字符串结束

请注意,要按字面意思匹配点,您必须将其转义 \. 否则它将匹配任何字符。

关于regex - 生成正则表达式以排除路径中的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51129682/

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