【问题标题】: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 >