代码之家  ›  专栏  ›  技术社区  ›  Gup3rSuR4c

如何使用JavaScript正则表达式捕获以特定模式开头的字符串中的值?

  •  0
  • Gup3rSuR4c  · 技术社区  · 5 年前

    我试图更新我的Gulp构建管道以使用模块,但是因为我使用的是TypeScript,所以导入声明中有一个非常小的差异。特别是在TS中 import * as test2 from "./Test2"; ,但在 import * as test2 from "./Test2.js"; . 注意,我必须指定 .js .

    在我的大口缩小任务中,我可以做一个替换来修复它,但是我很难使用正则表达式。我可以计算出捕获组,但是我不知道如何将其限制为只在以 import . 这就是我目前所拥有的:

    /(".\/\w+)/gm
    

    我该怎么做才能让它只在以 进口 ? 这是 RegEx101 我在一起工作。

    2 回复  |  直到 5 年前
        1
  •  1
  •   Antoine Guerra    5 年前

    我想你需要这样的东西: https://regex101.com/r/Qwy2a1/1

    正则表达式: ^import([^"]*)"([^"]*)";?

    替代: import $1"$2.js";

    使用: import * as test2 from "./Test2"; 那次回归 import * as test2 from "./Test2.js";

        2
  •  0
  •   Pan Christensen    5 年前

    我假设您想要捕获双引号之间的字符串。此regex将执行以下操作:

    ^import[^"]*"(.+)";
    

    如果知道最后的分号将断言字符串的结尾,则应添加 $ 到正则表达式的结尾,在输入字符串中没有任何东西存在,并且仍然返回匹配。