[regexp] Condition sur un string
Bonjour,
Je quéris votre aide face au problème que je rencontre :)
Je vous expose le probleme.
Je récupère d'un fichier un string comportant des coordonnées,
seulement cette string peut avoir 3 ou 4 coordonnées, soit :
Code:
1 2
| String3 = '41.0000000000\136.0000000000\194.0000000000';
string4 = '41.0000000000\136.0000000000\194.0000000000\240.0000000000'; |
Ainsi, l'idée est de récupérer les 3 premières coordonnés et la 4e si elle existe. J'ai donc besoin de vous pour construire l'expression regex.
Mon code est donc le suivant.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
| _x= '(?<_x>\d+(.)\d+)';
_y= '(?<_y>\d+(.)\d+)';
_z = '(?<_z>\d+(.)\d+)';
_r= '(?<_r>\d+(.)\d+)';
expression = [_x '(\\)' _y '(\\)' _z ' (?\\)(?(1)' _r ')?];
data = regexp(string4,expression,'names');
x = str2double(data._x);
y = str2double(data._y);
z = str2double(data._z);
r = str2double(data._r); |
est ce qu'il faudrait pas le faire en deux fois avec l'option 'match' ?
J'ai essayé pas mal de chose comme vous pouvez vous en doutez mais en vain.
Merci d'avance pour l'aide que vous pourriez m'apporter