【问题标题】:PowerShell - regex to get string between two stringsPowerShell - 正则表达式获取两个字符串之间的字符串
【发布时间】:2014-12-08 08:34:32
【问题描述】:

我在正则表达式方面不是很有经验。你能告诉我如何从两个字符串之间获取一个字符串值吗?

主题将始终采用以下格式://subject/some_other_stuff

我需要在/// 之间找到字符串。

例如:

完整字符串 = //Manhattan/Project

输出 = Manhattan

任何帮助将不胜感激。

【问题讨论】:

    标签: regex string powershell special-characters


    【解决方案1】:

    您可以为匹配结果使用否定字符类和引用捕获组#1

    //([^/]+)/
    

    解释:

    //         # '//'
    (          # group and capture to \1:
      [^/]+    #   any character except: '/' (1 or more times)
    )          # end of \1
    /          # '/'
    

    【讨论】:

    • 快速简单。谢谢!也欣赏解释。
    【解决方案2】:

    您可以使用以下使用环视的正则表达式。

    (?<=\/\/)[^\/]+(?=\/)
    

    【讨论】:

    • 感谢您的快速回复!干杯
    【解决方案3】:

    由于字符串始终具有相同的格式,您可以简单地将它们拆分为 /,然后检索索引 2 处的元素(第三个元素):

    PS > $str = "//Manhattan/Project"
    PS > $str.split('/')[2]
    Manhattan
    PS > $str = "//subject/some_other_stuff"
    PS > $str.split('/')[2]
    subject
    PS >
    

    【讨论】:

    • 谢谢。甚至不知道您可以检索这样的特定元素。
    猜你喜欢
    • 2019-03-30
    • 2020-03-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-04
    相关资源
    最近更新 更多