I have started learning Regex recently and I was given a string as follows:
T10BestFruits_Mango_7-Slices_Thick_Daily_noshare_BD5567#Aware#SeasonalFruits#NA#NA|FreshMangoes-6x5-NPM-5300000-Nov22
I want to extract 6x5
using REGEXEXTRACT
function but I cannot find the right Regex pattern that will do it perfectly. Is there any regex pattern that will give me "6x5" directly without any delimiters or words attached?
I first tried using ([|.*?]\w*[-.*?]\w*[-.*?]\w*[-.*?]\w*[-.*?]\w*)
to extract the substring but the result came out as |FreshMangoes-6x5-NPM-5300000-Nov22
.
Then I tried [|](.*)[-]
which gave me FreshMangoes-6x5-NPM-5300000
and -[\w*] -
which gave me -6x5-
.
What I needed was 6x5
exactly. There should be no delimiters in this substring.
CodePudding user response:
You can use
=REGEXEXTRACT(col, ".*\|.*?-(\w )")
See the regex demo. Details:
.*
- any zero or more chars other than line break chars as many as possible\|
- a|
char.*?
- any zero or more chars other than line break chars as few as possible-
- a hyphen(\w )
- Group 1: one or more alphanumeric/underscore chars.
CodePudding user response:
use:
=REGEXEXTRACT(A1; "-(\d x\d )-")