日本語プログラミング言語なでしこの公式掲示板

なでしこ3 質問

トップ 新規 検索

2023-03-01 13:12:34

Re④:数列判定って負の数には使えない?

ユメミノウツツ さん

これ(https://nadesi.com/cgi/kaizen3/index.php?m=mikaiketu)ですかね?ありがとうございます!
「なでしこのバグ報告」はトップページの右側にリンクの入口があります。
---------------------------------------------------------------------
Eのことすっかり忘れてましたwちゃんとなでしこのプログラム上で数字として使えるんですね!
対応もしてくださってありがとうございます🙇‍♂️正規表現がさっぱりわからないもので問題があるかどうかチェックできないのですが(スミマセン)、今後数列判定を使う機会があったら思い出させていただきます!
とりあえず解決にさせていただきますが、なでしこのバグ報告ってどこからすればいいんでしょうか・・・Github?(Github、ナニモワカラナイ)

 ほんとだー!
 今まで全然気づいてなかったケド、これは良くないと思う・・・
 v1の時からこの仕様なら、しょうがないね!w て思うところですが(え;)試してみたら、v1はちゃんとしてました!
#----------------------------------------
「12345」を数列か判定して表示。
「12345」を数列か判定して表示。
「-12345」を数列か判定して表示。
「123-45」を数列か判定して表示。
「12.345」を数列か判定して表示。
「1.23.45」を数列か判定して表示。
「1.234E-5」を数列か判定して表示。
#----------------------------------------
 v1の場合は、「1,1,1,0,1,0,1」となります。
 負数か計算式か、小数かバージョンっぽいやつ?か正しく判定しているし、浮動小数点数の指数表記にも対応しているもよう。

 v3の場合は、「1,0,0,0,1,1,0」となります。(ホントはtrue/falseだけど見じゅらいので1、0で書いてますぅ)
 全角や浮動小数点数はともかくとしても、負数や小数がちゃんと判定出来ないのはやはり良くないと思われ・・・

 ソースを見てみたら、正規表現がしょぼすぎる!
 とゆうワケで、ない知恵を絞って、v1と同じ感じに判定出来る正規表現を考えてみたので発表しておきます。
#----------------------------------------
●(Sが|Sの|Sを)数列判定
    Sを「/^[+\-+-]?([0-90-9]*)(([\..][0-90-9]+)?|([\..][0-90-9]+[eEeE][+\-+-]?[0-90-9]+)?)$/」で正規表現マッチ
  もし、それがNULLならば、FALSEで戻る。
  違えば、TRUEで戻る。
ここまで。
「12345」を数列か判定して表示。  # true
「12345」を数列か判定して表示。# true
「-12345」を数列か判定して表示。  # true
「123-45」を数列か判定して表示。  # false
「12.345」を数列か判定して表示。  # true
「1.23.45」を数列か判定して表示。 # false
「1.234E-5」を数列か判定して表示。 # true
#----------------------------------------
 どうかなあ。タブンこれでいけると思うんだけど・・・




(編集パスワード送信)

子記事

親記事 (No.1620)
返信した記事(元) (No.1623)

この内容(No.1624)に返信

この内容(No.1624)をダウンロード

この内容(No.1624)のテキスト表示





www.eznavi.net