How to match a substring surrounded by known prefix and suffix in javascript

Given a string, such as:

example string with an intended nested string to match.

How to isolate a substring knowing only a prefix and suffix for it, e.g. between intended and to match?

0

2 Answers

Use regular expressions with non-capturing parentheses, like so:

string = 'example string with an intended nested string to match.'; regexp = /(?:intended)(.*)(?:to match)/; firstMatch = regexp.exec(string)[1]; // " nested string " 

The question mark has several uses in regular expressions, the parentheses question mark colon form (?:more regex) is the non-capturing parentheses.

See MDN for more details of exec(), string.match(), and regular expressions.

Look behind (?<=...) and look ahead (?=...) can be used to the same effect -- they are used to match but are not included in the result, the term for that behavior is referred to as "not consuming"

RegExp Lookahead Lookbehind

/(?<=intended).+(?=to match)/g; 

RegEx101

const str = `example string with an intended nested string to match.`; const rgx = /(?<=intended).+(?=to match)/g; const hit = str.match(rgx); console.log(hit[0]);

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

You Might Also Like