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

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

try:
pattern = '\<red(dy|dish)?\s'
ADD
pattern = '\<red(d)?(y|ish)?\>'

More Answers (3)

text='red redy predominant red ade redish red vrd redishh'
pattern='(?<=\s)red(y|ish)?(?!\S)'
regexp([' ' text],pattern,'match')
Thank you Andrei and Azzi. Both the solutions are working. I cannot distinguish between these two though.

2 Comments

They are different solutions and giving different results
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.

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

Categories

Products

Community Treasure Hunt

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

Start Hunting!