Replacing characters in a string

조회 수: 5 (최근 30일)
Tanil
Tanil 2013년 1월 10일
댓글: Medhini B 2020년 8월 21일
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
Sean de Wolski 2013년 1월 10일
Every new poster should read this question before posting. Very well done!

댓글을 달려면 로그인하십시오.

채택된 답변

Sean de Wolski
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
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
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')
  댓글 수: 2
Tanil
Tanil 2013년 1월 10일
I saw my problem I did try that once, but for some reason it kept outputting "$1" I had to parenthesis the \w+ part. Cheers for that
Tanil
Tanil 2013년 1월 10일
O sorry this does it when 'ly' is also located in the middle of the word. I want it to do it providing its at the end only!

댓글을 달려면 로그인하십시오.


Tanil
Tanil 2013년 1월 10일
after not skimming the regular expression chapter. There is another method ... I guess there is many different combinations.
[^c1c2c3] }
Any character not contained within the brackets: anything but c1 or c2 or c3
deducing from this, the '^' is like ~ and works as a not therefore, [^a-z]
Thanks for all the suggestions.

카테고리

Help CenterFile Exchange에서 Characters and Strings에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by