長い文字列から特定の文字列を抽出する| ソース | 温度 |
| 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_183920 | 70 |
やあ、
JSLを使用して、上記のJMPテーブルの「ソース」列から温度を抽出しようとしています
温度の列に、私が望む結果を書きました。 私の問題は、色の間の区切り文字です
(black3,grey17 および white64) で、温度はダッシュ "-" ですが、温度が負の場合も "-" の場合があります
ワード機能を使っていろいろ試してみましたがだめでした。 これに関する任意のヘルプが認められます。
よろしくお願いいたします。
デビッド
Re: 長い文字列から特定の文字列を抽出するありがとう、とても役に立ちました
敬具、
デビッド。
Re: 長い文字列から特定の文字列を抽出する
やあ、
ありがとう、それは機能し、非常に簡潔です!
敬具、
デビッド。Re: 長い文字列から特定の文字列を抽出するこれがトリックを行うと私が信じている式です
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;

Re: 長い文字列から特定の文字列を抽出するこの問題は、Regex() 文字列関数によって簡単に解決できます。これを試して:
Num( Regex( :Source, "-(-?\d\d?\d?)degc", "\1" ) )