Forum Discussion
lchirag
2 years agoFrequent Visitor
Extract Alphanumeric Pattern from Text Field
Hi There! I have a column in the PBI dataset that is TEXT and has very long text data. Every row of this field has an Alphanumeric string added in any part of the text. However, the pattern to be e...
- 2 years ago
Hi lchirag
You can give this custom lookupFunction a go:
let Source = "Purchase dept ID: PURT0001894 Software License Renewals Warehouse Area: Applications Hosting Team INITIATIVE/CATEGORY: MS Teams License renewal", lookupFunction = ( lookIn as text, alphaCount as number, numberCount as number ) as text => [ len = alphaCount + numberCount, items = List.Select( Text.Split(lookIn, " "), each Text.Length(_) = len), find = List.Select( items, each [ split = Splitter.SplitTextByCharacterTransition({"A".."Z"}, {"0".."9"})(_), test = Text.Length( split{0} ) = alphaCount and Text.Length( split{1} ) = numberCount ][test] ), combi = Text.Combine( find, ", ") ][combi], result = lookupFunction(Source, 4, 7) in resultor maybe this
let Source = "Purchase dept ID: PURT0001894 Software License Renewals Warehouse Area: Applications Hosting Team INITIATIVE/CATEGORY: MS Teams License renewal", lookupFunction = (lookIn as text, alphaCount as number, numberCount as number) as text => let patternLen = alphaCount + numberCount, isPatternMatch = (text) => ( Text.Remove(Text.Start(text, alphaCount), {"A".."Z"}) = "" and Text.Remove(Text.End(text, numberCount), {"0".."9"}) = "" ), items = List.Select(Text.Split(lookIn, " "), each Text.Length(_) = patternLen), matches = List.Select(items, each isPatternMatch(_)) in Text.Combine(matches, ", "), Result = lookupFunction(Source, 4, 7) in Resultboth return this result
I hope this is helplful