PowerShell - 正则表达式在两个字符串之间获取字符串

时间:2014-10-13 17:39:42

标签: regex string powershell special-characters

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

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

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

例如:

完整字符串= //Manhattan/Project

输出= Manhattan

非常感谢任何帮助。

3 个答案:

答案 0 :(得分:5)

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

//([^/]+)/

说明:

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

答案 1 :(得分:2)

您可以使用以下使用外观的正则表达式。

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

答案 2 :(得分:2)

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

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