Replacing characters in a string
7 ビュー (過去 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 日
Every new poster should read this question before posting. Very well done!
採用された回答
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!