
No.4ベストアンサー
- 回答日時:
ああ、「?」の存在を忘れていました。
そうそう
if ($val =~ /^(-|\+|)\d+\.?\d*(E\+\d+|E\-\d+)?$/i){
だと、
-1.E+12
というのも引っかかります。
もちろんPerlとしては数値として扱われるので大丈夫ですが。
しかし、
-.5E+12
というのもPerl的には正しいはずなのに、こちらは引っかかりません。
-12E-4.5
-12E-.5
これらも正しいのにだめです。
どこまでのを求めますか?(^^;
if ($val =~ /^(-|\+)?(\d+\.?\d*|\d*\.?\d+)(E\+(\d+\.?\d*|\d*\.?\d+)|E\-(\d+\.?\d*|\d*\.?\d+))?$/i){
こうかもしれない・・・
すごいですぅ~!
判定したい値は全てOKでした♪
> どこまでのを求めますか?
十分ですっ。
本当に、本当にありがとうございました。
No.3
- 回答日時:
補足です。
俺の#2の回答についてですが、プラスマイナスの符号に対する処理が抜けてます。ミスでした(^_^;
if ( $val =~ /^(\+|\-)\.?\d+\.?\d*(E\+\d+|E\-\d+)?$) {
いちおー別の方の回答が出ているようですが、念のためにフィックスしておきます。
ありがとうございます。
アドバイスを頂いたおかげで、解決できました。
結局、
if ($val =~ /^(-|\+|)\d+\.?\d*(E\+\d+|E\-\d+)?$/i){
にしてみました。
もうちょっと、テストしてみてOKなら、これにします♪
No.2
- 回答日時:
Perl は、変数はすべて(VBでいうところの)バリアント型なので、タダで判別する関数はありません。
指数を含むというのが面倒ですね(^_^;
こういうのはどうでしょう。
if ( $val =~ /^\d+\.?\d*(E\+\d+|E\-\d+)?$) {
これで真なら数値ということになると思うんですが……。
ありがとうございます。
if ($val =~ /^\d+\.?\d*(E\+\d+|E\-\d+)?$/i){
でやってみました。
ただ、「-1e-007」というような値を判別すると、文字列と判定されてしまうのですが。。。
※「1e-007」は数値と判定されました。
No.1
- 回答日時:
/^(-|\+|)\d+(\.\d+|)(e\-\d+(\.\d+|)|e\+\d+(\.\d+|)|e\d+(\.\d+|)|)/i
マッチングだとこんな感じ?
#「.25」なんて0を省く場合を除いて
もっとスマートに書けそうだが・・・
早速のご回答、ありがとうございました。
上記のマッチングで判定してみると、「-1.00ee-7」が数値として判定されてしまいました。(;_;)
結局、i_am_alive さんと、deagles さんの回答を混ぜて
if ($val =~ /^(-|\+|)\d+\.?\d*(E\+\d+|E\-\d+)?$/i){
にしてみました。いまのところ、問題ないみたいです。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 情報処理技術者・Microsoft認定資格 情報技術の問題についてです。 10進数の−36を以下のような16ビットの浮動小数点表示にするといくつ 3 2022/05/21 19:53
- 数学 2変数関数の条件つき極値問題について、 ラグランジュ未定乗数法で候補点を求めたあと、 ①ヘッセ行列の 4 2022/11/13 18:14
- Excel(エクセル) VBAで “:” を含むセルの特定 2 2023/05/11 16:30
- 数学 以下の問題が分かりません。 8ビット浮動小数点数が、最上位ビットから順に符号1ビット、指数部3ビット 4 2023/07/22 16:06
- Excel(エクセル) 条件付き書式の設定方法を教えて下さい。 2 2023/04/14 18:12
- その他(データベース) Accessフォームにて指定のフィールドの平均値を小数点第一位で表示できない 2 2022/08/30 17:19
- Excel(エクセル) エクセルのセルの書式設定・ユーザー定義の条件設定について 1 2022/08/17 21:56
- Perl perlでリテラル値はメモリにどのように格納されているか? 1 2023/01/15 20:45
- UNIX・Linux bash環境でのエラー対応をお願い致します。 1 2022/11/26 17:41
- その他(Microsoft Office) Excelで時間計算(負) 8 2023/02/26 05:47
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Perlのプログラムについて
-
Perlのエラーについてご教授く...
-
Perlで一定値以上の場合にデー...
-
このファイルを開く方法で困っ...
-
perl の open について教えてく...
-
Perl言語について。
-
ファイルをディレクトリ分配の...
-
アルファベットに付いて質問し...
-
#!/usr/bin/perlで書きだしたCG...
-
perlのflock関数でロックをかけ...
-
AI sisterとは、偽物の人ですか?
-
bashスクリプト
-
ファイルアイコンの左下に緑の□...
-
perlプログラミング 空白行削除
-
perlでリテラル値はメモリにど...
-
perlで2次元配列をサブルーチ...
-
Perlで時間の計算
-
perlについて
-
perlのrequireの動き方について...
-
perlの構文でカンマの意味が分...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
テキストファイルで提出とは?
-
openした後、closeしないでプロ...
-
Perlのエラーについてご教授く...
-
INDIRECT 横に再度抽出したい
-
bashスクリプト
-
perlをバージョンアップしたら...
-
perlプログラミング 空白行削除
-
Wallpaper Engineでおすすめの...
-
perlのflock関数でロックをかけ...
-
Strawberry Perl for Windows ...
-
フローチャート 九九
-
perlについての質問
-
ターミナルで特定の文字と文字...
-
LinuxにおいてのPerlのプログラ...
-
P.Cのシングルチューナーとダブ...
-
PerlでUTF-8のファイルの文字列...
-
【超初心者】異なるディレクト...
-
perlで複数のファイルの処理に...
-
Perl 順位の重複
-
Perlで特定文字列から特定文字...
おすすめ情報