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

 Réponse acceptée

Andrei Bobrov
Andrei Bobrov le 19 Juin 2013
Modifié(e) : Andrei Bobrov le 24 Juin 2013
try:
pattern = '\<red(dy|dish)?\s'
ADD
pattern = '\<red(d)?(y|ish)?\>'

Plus de réponses (3)

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

2 commentaires

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

Connectez-vous pour commenter.

Phanichin
Phanichin le 24 Juin 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

Produits

Community Treasure Hunt

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

Start Hunting!

Translated by