Using regular expressions to identify names and unit from string

14 visualizaciones (últimos 30 días)
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

Más información sobre Text Data Preparation en Help Center y File Exchange.

Etiquetas

Productos


Versión

R2018a

Community Treasure Hunt

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

Start Hunting!

Translated by