Home > Software design >  Matching a specific string between foward slash or # using regex
Matching a specific string between foward slash or # using regex

Time:04-05

I'm trying to make this regex:

(?<=section)(.*?)(?=\#)

For these examples:

https://www.test.com/en/section/string-to-get#id=4949
https://www.test.com/en/section/string-to-get/page&2#id=4949

current regex

CodePudding user response:

You need to use

(?<=section\/)([^\/#]*)

Or, just

section\/([^\/#]*)

and grab Group 1 value.

Here,

  • (?<=section\/) - a positive lookbehind that matches a location immediately preceded with section/ substring
  • ([^\/#]*) - Capturing group 1: zero or more chars other than / and #.

See the regex demo #1 and regex demo #2.

Depending on whether or not regex delimiters are required and if they are not /s you may use an unescaped /, (?<=section/)([^/#]*) and section/([^/#]*).

  • Related