MATLAB Answers

Extract string with regexp()

1 view (last 30 days)
kei hin
kei hin on 13 Apr 2021
Commented: kei hin on 14 Apr 2021
I have a variable that stores a string. The string contains letters, numbers, underscores and symbols (there is no specific order, and not just once). Now I want to extract the string through regexp(). The extracted string should start with letters, numbers and underscores and end with letters or numbers, but the suffix needs to exclude '_' or '_in' or '_out' or '_out[]', how can I do that? Thanks.
str_new = regexp(str_old,'[^$^|]\w*_*\w*[^_^_out^_in^_out[]^_in[]]','match')
I want to use '^' to exclude string in '[ ]' , but it is distinguish only one letter or another...
eg:
str_old = '$abc_in'
str_new = abc
str_old = 'def_in_hij_out[]'
str_new = 'def_in_hij'
str_old = 'xyz'
str_new = 'xyz'

Accepted Answer

Stephen Cobeldick
Stephen Cobeldick on 13 Apr 2021
Edited: Stephen Cobeldick on 13 Apr 2021
inp = {'$abc_in','def_in_hij_out[]','xyz'}
inp = 1×3 cell array
{'$abc_in'} {'def_in_hij_out[]'} {'xyz'}
out = regexprep(inp,{'_(in|out(\[\])?)?\>','\W+'},'')
out = 1×3 cell array
{'abc'} {'def_in_hij'} {'xyz'}
  1 Comment
kei hin
kei hin on 14 Apr 2021
What a nice idea !

Sign in to comment.

More Answers (0)

Tags

Community Treasure Hunt

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

Start Hunting!