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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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