Find and trim text in a table

8 views (last 30 days)
Bryan Wilson
Bryan Wilson on 5 Dec 2017
Answered: Peter Perkins on 19 Dec 2017
I have a table with a column of strings. In each string, I need to find the '_' character and trim off it and all text to the right. My brain has stopped working and can't figure it out. Thanks!
T = table({"A_1";"A_2";"A_10"},[1;2;1],[6;7;5],...
'VariableNames',{'Section' 'Data1' 'Data2'})
T =
Section Data1 Data2
_______ _____ _____
"A_1" 1 6
"AB_2" 2 7
"B_10" 1 5
What I'd like is....T=
Section Data1 Data2
_______ _____ _____
"A" 1 6
"AB" 2 7
"B" 1 5

Accepted Answer

KL
KL on 5 Dec 2017
Edited: KL on 5 Dec 2017
use regexprep,
T = table({"A_1";"AB_2";"B_10"},[1;2;1],[6;7;5],...
'VariableNames',{'Section' 'Data1' 'Data2'});
T.Section = cellfun(@(x) regexprep(x,'(?=\_)[\S]*',''),T.Section,'uni',0)
T =
3×3 table
Section Data1 Data2
_______ _____ _____
["A" ] 1 6
["AB"] 2 7
["B" ] 1 5
  1 Comment
Bryan Wilson
Bryan Wilson on 5 Dec 2017
Thank you! As a side note, the regexprep didn't work on my string data, but was just find after a cellstr conversion.

Sign in to comment.

More Answers (1)

Peter Perkins
Peter Perkins on 19 Dec 2017
As KL's answer indicated, this isn't really a question about tables, you just need to figure out how to do it for a string column vector, and then put "T." in from of the string variable's name.
If you have strings data, not a cellstr, take a look at extractBefore. I think it does exactly what you're looking for. And
methods string
will lead you to a bunch of other related operations.

Categories

Find more on Characters and Strings in Help Center and File Exchange

Tags

Products

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!