2

値 (例: 42 または 41.0005) が ECL (HPCC) の数値であるかどうかを確認したい。次のような正規表現を使用する関数を念頭に置いています。

EXPORT IsNumeric(STRING UniqueID) := FUNCTION
        regex:='^\\d+$';       
        RETURN REGEXFIND(regex, UniqueID);    
END;

組み込みの IsNumeric 関数はありますか?

そうでない場合...正規表現を使用するよりも良い方法はありますか? (可読性とパフォーマンスの両方を考える)

  • 多分ECLコマンド?
  • STD機能?
  • 鋳造?
  • #GetDataType?
  • str.filter?

注:古いバージョンの HPCC (2011) では、そのような機能は存在しなかったようです。しかし、それ以来、多くのリリースが行われました。

4

1 に答える 1

2

公式の HPCC フォーラムで、ECL にネイティブの IsNumeric 関数がないかどうかを尋ねました。

回答には、私よりも優れた優れた ECL 回避策がいくつかあります。最高のようです:

IsNumeric(STRING n) := n = (STRING)(DECIMAL)n;
于 2016-11-09T10:10:57.340 に答える