I want to extract the string between last two string using a regular expression. I cannot seem to be able to come up with the right expression, if someone could help me that would be great.
Say the string is: aa/bbbb/ccccc/eeee/fffff.jpg, I want to extract out "eeee".
Thank you.
I know you said you wanted to use a regex but for those looking for a solution but don't require it to be a regex, you could do this simply by splitting the string:
var originalString = 'aa/bbbb/ccccc/eeee/fffff.jpg';
//convert to array
var parts = originalString.split('/');
//find the second to last item
var lastPartOfPath = '';
//make sure there are more than one part
if (parts.length > 1) {
lastPartOfPath = parts[parts.length-2];
}
Since you only care about the last set of slashes, you start by matching anything.*
then you want a literal slash\\/
(escaped since the slash would terminate the js regex)
now you want anything up to the next slash, which implies not a slash and _there must be something (one-or-more) and we'll put that in a capturing group so you can extract it.
([^/]+)
and followed by another literal slash\\/
then anything else (the file name?) that, again, does not include slashes[^/]+
Putting that all together gives you the regex/.*\\/([^/]+)\\/[^/]+/
and"aa/bbbb/ccccc/eeee/fffff.jpg".match(/.*\\/([^/]+)\\/[^/]+/);
produces["aa/bbbb/ccccc/eeee/fffff.jpg", "eeee"]
... the eeee is captured.
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.