Replacing characters in a string
5 次查看(过去 30 天)
显示 更早的评论
Hi,
I hope you can help on this little task I have. Basically I have a cell array and I want to know if this cell array contains any elements with 'ly' at the end of the word. If it does remove it from the word.
For example
strcell = {'hi' 'to' 'all' 'the' 'friendly' 'people' 'quickly' 'making' 'time' 'for' 'others'}
I understand that I can use "regexp" to find words that have these characters I want. From this I deduced *note that ive used match to just make it easy for me to see the word and not a random index value':
regexp(strcell, '\w+ly', 'match')
this should return friendly and quickly and from these words the "ly" should be removed:
* friendly -> friend
* quickly -> quick
I understand I am close with using regexprep However, from there I get confused on how to do this!
Thanks
1 个评论
采纳的回答
Sean de Wolski
2013-1-10
One way:
regexprep(strcell,'ly\>','')
Match ly at the end of the word \>. Replace it with nothing.
1 个评论
Medhini B
2020-8-21
What if I want to remove ly which is in the beginning of the word? Example "lyfriend , ...."
更多回答(2 个)
Daniel Shub
2013-1-10
编辑:Daniel Shub
2013-1-10
I think regexprep does what you want. You need to modify the regexp a little bit:
s = regexprep(strcell, '(\w+)ly', '$1')
If you only want at the end
s = regexprep(strcell, '(.*)(ly\>)', '$1')
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Characters and Strings 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!