Yad
Yad

Reputation: 229

PowerShell - regex to get string between two strings

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.

Upvotes: 4

Views: 18748

Answers (3)

user2555451
user2555451

Reputation:

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 >

Upvotes: 2

hwnd
hwnd

Reputation: 70722

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
/          # '/'

Upvotes: 5

Avinash Raj
Avinash Raj

Reputation: 174696

You could use the below regex which uses lookarounds.

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

Upvotes: 2

Related Questions