Using regular expressions to identify names and unit from string

Hello,
I have the following strings
'name1/name2 [°C]'
'name1/name2 [kW]'
'name1/name2 [%]'
or
'name1/name2 {0,1}'
or
'name1/name2'
How can I use regular expressions to find the names and the unit, if there is any?
Thanks!

 Respuesta aceptada

jonas
jonas el 17 de Jul. de 2018
Editada: jonas el 17 de Jul. de 2018
You could do it in two steps, like this:
str='name1/name2 [C]'
%%Extract unit, if there is one
exp=']|[|}|{';
id=regexp(str,exp);
if isempty(id)==0
unit=str(id(1)+1:id(2)-1)
end
%%Extract name
exp='/| ';
id=regexp(str,exp);
if numel(id)==2
name1=str(1:id(1)-1)
name2=str(id(1)+1:id(2)-1)
else
name1=str(1:id(1)-1)
name2=str(id(1)+1:end)
end
If you do not want to save whatever is within the curly brackets as units, then remove those from the first expression.

Más respuestas (0)

Categorías

Productos

Versión

R2018a

Etiquetas

Preguntada:

el 17 de Jul. de 2018

Editada:

el 17 de Jul. de 2018

Community Treasure Hunt

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

Start Hunting!

Translated by