PowerShell - regex to get string between two strin

2019-06-26 15:49发布

问题:

I'm not very experienced in Regex. Can you tell me how to get a string value from between two strings?

The subject will always be in this format : //subject/some_other_stuff

I need to get the string found between // and /.

For example:

Full String = //Manhattan/Project

Output = Manhattan

Any help will be very much appreciated.

回答1:

You can use a negated character class and reference capturing group #1 for your match result.

//([^/]+)/

Explanation:

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


回答2:

You could use the below regex which uses lookarounds.

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


回答3:

Since the strings are always of the same format, you can simply split them on / and then retrieve the element at index 2 (the third element):

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