OR condition in regexp

Hi all, i've a problem here when checking for the regular expression of strings in a cell.
Let
x = {'width = "13" height = "2"'
'width = "12" height = "90"'
'width = "2" height="5"'
'width = "0" height="5"'
'width = "20" height="5"'
'width = "1" height="0"'
'width = "20" height="50"'};
I use this two statement to find the width and height which smaller than 10.
width = find(~cellfun('isempty',regexp(html_only, 'width\s?=\s?"\s?[0-9]\s?"', 'match')));
height = find(~cellfun('isempty',regexp(html_only, 'height\s?=\s?"\s?[0-9]\s?"', 'match')));
How to make it to check for either width or height is smaller than 10. I code like this, but it cant work, and error prompted out.
width = find(~cellfun('isempty',regexp(html_only, 'width\s?=\s?"\s?[0-9]\s?"' | 'height\s? =\s?"\s?[0-9]\s?"', 'match')));

Respuestas (1)

Jos (10584)
Jos (10584) el 10 de Abr. de 2014

0 votos

Again , approach this in two steps. First extract the numbers and then apply the condition.
As you have found out, it is much harder to code this in a single obfuscated line ...

2 comentarios

Jacky
Jacky el 10 de Abr. de 2014
Editada: Jacky el 10 de Abr. de 2014
Thanks for your reply, i able to make it in one statement
find(~cellfun('isempty',regexp(x, 'width\s?=\s?"\s?[0-9]\s?"', 'match') | regexp(x, 'height\s?=\s?"\s?[0-9]\s?"', 'match')));
and in several lines also
w1 = regexp(x, 'width\s?=\s?"\s?[0-9]\s?"', 'match');
h1 = regexp(x, 'height\s?=\s?"\s?[0-9]\s?"', 'match');
find(~cellfun('isempty', w1) | ~cellfun('isempty', h1));
Which one is more preferable?
Jos (10584)
Jos (10584) el 10 de Abr. de 2014
Which code is easier to understand?

Iniciar sesión para comentar.

Categorías

Más información sobre Characters and Strings en Centro de ayuda y File Exchange.

Etiquetas

Preguntada:

el 10 de Abr. de 2014

Comentada:

el 10 de Abr. de 2014

Community Treasure Hunt

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

Start Hunting!

Translated by