gpt4 book ai didi

regex - perl 正则表达式匹配子串

转载 作者:行者123 更新时间:2023-12-04 21:13:12 25 4
gpt4 key购买 nike

我有几个字符串,我想从中提取一个子字符串。下面是一个例子:

/skukke/integration/build/IO/something

我想提取第三个之后的所有内容 /特点。在这种情况下,输出应该是
/build/IO/something

我试过这样的事情
/\/\s*([^\\]*)\s*$/

比赛的结果是
something

这不是我想要的。任何人都可以帮忙吗?

最佳答案

正则表达式解决方案

您可以使用的正则表达式是:

(?:\/[^\/]+){2}(.*)

demo

正则表达式解释:
  • (?:\/[^\/]+){2} - 完全匹配 2 次 /和一切不是 / 1 次或多次
  • (.*) - 在我们之前匹配的之后匹配 0 个或多个字符并放入捕获组 1。

  • 这是 TutorialsPoint 上的演示:
    $str = "/skukke/integration/build/IO/something";
    print $str =~ /(?:\/[^\/]+){2}(.*)/;

    输出:
    /build/IO/something

    非正则解决方案

    您可以使用 File::Spec::Functions :
    #!/usr/bin/perl
    use File::Spec;
    $parentPath = "/skukke/integration";
    $filePath = "/skukke/integration/build/IO/something";
    my $relativePath = File::Spec->abs2rel ($filePath, $parentPath);
    print "/". $relativePath;

    输出 /build/IO/something .

    demo on Ideone

    关于regex - perl 正则表达式匹配子串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30153516/

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