How do i use regular expressions effectively for parsing my text?

1 view (last 30 days)
Hello,
I am currently using regular expressions for parsing my text. The pattern is:
pattern = 'red(dy|dish)?'
regexp(text,pattern,'match')
the answer is reddy, reddish, red. However the pattern recognizes red in words like predominantly , predetermined etc. I do not want this to happen. I want the regular expressions to only return words which describe color red (example red, reddy, reddish). How do i change my pattern or regular expression accordingly? Any help in this regard would be highly appreciated.
Thanks, Phani

Accepted Answer

Andrei Bobrov
Andrei Bobrov on 19 Jun 2013
Edited: Andrei Bobrov on 24 Jun 2013
try:
pattern = '\<red(dy|dish)?\s'
ADD
pattern = '\<red(d)?(y|ish)?\>'

More Answers (3)

Azzi Abdelmalek
Azzi Abdelmalek on 19 Jun 2013
Edited: Azzi Abdelmalek on 19 Jun 2013
text='red redy predominant red ade redish red vrd redishh'
pattern='(?<=\s)red(y|ish)?(?!\S)'
regexp([' ' text],pattern,'match')

Phanichin
Phanichin on 20 Jun 2013
Thank you Andrei and Azzi. Both the solutions are working. I cannot distinguish between these two though.
  2 Comments
Phanichin
Phanichin on 24 Jun 2013
Hello Azzi,
Yes they are different. I tried it just now. Your solution is better. However i am having a problem. When i have text like
text = 'red, redish redy' pattern='(?<=\s)red(y|ish)?(?!\S)' regexp([' ' text],pattern,'match')
the output is only 'redish' 'redy' there is no red in the output. This is the case when the text = 'redish, red redy' . The output in this case is 'red' 'redy' there is no redish. How do i resolve this?
Regards, Phani

Sign in to comment.


Phanichin
Phanichin on 24 Jun 2013
Hello Azzi,
Yes they are different. I tried it just now. Your solution is better. However i am having a problem. When i have text like
text = 'red, redish redy' pattern='(?<=\s)red(y|ish)?(?!\S)' regexp([' ' text],pattern,'match')
the output is only 'redish' 'redy' there is no red in the output. This is the case when the text = 'redish, red redy' . The output in this case is 'red' 'redy' there is no redish. How do i resolve this?
Regards, Phani

Products

Community Treasure Hunt

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

Start Hunting!