BookmarkSubscribeRSS Feed
Highlighted
David_Morrow

Community Trekker

Joined:

May 4, 2017

Extracting a particular string from a longer one

SourceTemperature
MZ_ES20-ATF786_D03-R_8x8-5hz_NoCG_0klux-black3--5degc__20181105_203705-5
MZ_ES20-ATF786_D03-R_8x8-5hz_NoCG_0klux-grey17--30degc__20181105_194659-30
MZ_ES20-ATF786_D03-R_8x8-5hz_NoCG_0klux-white64-70degc__20181105_18392070

 

Hi,

I am trying to extract the temperature from the "Source" column in the JMP table above using JSL

In the Temperature column I have written the results that I would like. My problem is that the delimiter between the colour

(black3,grey17 and white64) and the temperature is a dash "-" but sometimes the temperature is negative which is also "-"

I have tried a number of things with the Word function but so far to no avail. Any help with this would be apprecated.

 

Thanks and regards,

David 

2 ACCEPTED SOLUTIONS

Accepted Solutions
markbailey

Staff

Joined:

Jun 23, 2011

Solution

Re: Extracting a particular string from a longer one

This problem is easily solved by the Regex() string function. Try this:

 

Num( Regex( :Source, "-(-?\d\d?\d?)degc", "\1" ) )
Learn it once, use it forever!
txnelson

Super User

Joined:

Jun 22, 2012

Solution

Re: Extracting a particular string from a longer one

Here is a formula that I believe will do the trick

degCPosition = Contains( :Source, "degc__" ) - 1;
i = degCPosition;
While( Substr( :Source, i, 1 ) != "-", i-- );
If( Substr( :Source, i - 1, 1 ) == "-",
	result = Num( Substr( :Source, i, (degCPosition - i) + 1 ) ),
	result = Num( Substr( :Source, i + 1, degCPosition - i ) )
);
result;

position.PNG

Jim
4 REPLIES
markbailey

Staff

Joined:

Jun 23, 2011

Solution

Re: Extracting a particular string from a longer one

This problem is easily solved by the Regex() string function. Try this:

 

Num( Regex( :Source, "-(-?\d\d?\d?)degc", "\1" ) )
Learn it once, use it forever!
David_Morrow

Community Trekker

Joined:

May 4, 2017

Re: Extracting a particular string from a longer one


Hi,
Thank you , that works and very succinct !

Kind Regards,
David.
txnelson

Super User

Joined:

Jun 22, 2012

Solution

Re: Extracting a particular string from a longer one

Here is a formula that I believe will do the trick

degCPosition = Contains( :Source, "degc__" ) - 1;
i = degCPosition;
While( Substr( :Source, i, 1 ) != "-", i-- );
If( Substr( :Source, i - 1, 1 ) == "-",
	result = Num( Substr( :Source, i, (degCPosition - i) + 1 ) ),
	result = Num( Substr( :Source, i + 1, degCPosition - i ) )
);
result;

position.PNG

Jim
David_Morrow

Community Trekker

Joined:

May 4, 2017

Re: Extracting a particular string from a longer one

Thank you ,very helpful
Kind Regards,
David.