![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?8acaa2e)
No.7
- 回答日時:
ちょっと頑張ってみる:
/^[+-]?(0[0-7]*|0x[0-9a-f]+|[1-9]\d*|(0\.?|[1-9]\d*|0?\.\d+|[1-9]\d*\.\d*)e[+-]?\d+$/i;
わけわからん.
No.5
- 回答日時:
数値か文字列かを区別したい状況ってのがよくわからないんですが, 何をしたいんですか?
この回答への補足
皆様ご回答ありがとうございます。
正規表現が一番手っ取り早いようですね。
Tacosan様。
たとえば、Perlと同じく文字列と数値を区別しないASP言語では IsNumeric() という関数があります。これは、
val1 = "3"
val2 = "文字列"
というように、変数に値を代入しておいて、
IsN = IsNumeric(val1)
とすると、変数IsNにはTrueが戻ります。
IsN = IsNumeric(val2)
とすると、変数IsNにはFalseが戻ります。
つまり数値と評価できる文字列にはTureを返します。
これと同じような関数等を探しているのです。
まだいろいろな方法を知りたいので、「私はこうしてるよ」という方がおられましたら、ご回答よろしくお願いします。
![](http://oshiete.xgoo.jp/images/v2/common/profile/M/noimageicon_setting_14.png?8acaa2e)
No.3
- 回答日時:
No2です。
すみません。小数点に対応しておりませんでした。こちらのほうがいいかもしれません。自信はありませんが・・
my $a = "12345文字";
my $b = 12345;
my $c = 123.567;
if( $a =~ /^\d+\.?\d+$/){print '$aは数字です';}
else{print '$aは文字です';}
print "\n";
if( $b =~ /^\d+\.?\d+$/){print '$bは数字です';}
else{print '$bは文字です';}
print "\n";
if( $c =~ /^\d+\.?\d+$/){print '$cは数字です';}
else{print '$cは文字です';}
print "\n";
![](http://oshiete.xgoo.jp/images/v2/common/profile/M/noimageicon_setting_14.png?8acaa2e)
No.2
- 回答日時:
自信はありませんが、正規表現であらわすなら、
my $a = "12345文字";
my $b = 12345;
if( $a =~ /^\d+$/){print '$aは数字です';}
else{print '$aは文字です';}
print "\n";
if( $b =~ /^\d+$/){print '$bは数字です';}
else{print '$bは文字です';}
print "\n";
これでいちおうできそうです。他の方の回答も参考にしたほうがいいです。便利な関数などあるかもしれません。
No.1
- 回答日時:
Perlの変数は、文字列と数値を区別しません。
なので、
$x="1.23";
は、文字列としてセットしているつもりですが、
文字列としても数値としても有効で、
文字列として評価されるときは文字列として
数値として評価されるときは数値として評価されるので、それを区別することはできません。(と思う)
便宜上数値と判断できるものを数値と見なすということであれば、
sub isNum($){
my ($x) = @_;
return $x eq $x * 1;
}
とかすればいいかと思いますが、
うまくいかない場合もあるかもしれません。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) VBAで、特定の文字より後を削除して残った数値を文字列に変換と特定の文字より前も削除したい 3 2022/04/15 19:21
- Excel(エクセル) Excel2019 列と列(2列)の数値の重複を調べたい 1 2023/05/11 13:35
- Excel(エクセル) Excelの文字列を数字に変換する方法について 6 2023/07/31 21:18
- Visual Basic(VBA) 列を指定して値を左から5文字にそろえる 1 2022/06/10 20:28
- Excel(エクセル) Excel 条件付き書式について 1 2022/12/14 20:38
- HTML・CSS HTMLの・要素・属性・属性値 はプログラム言語の「変数」みたいに変更できますか? 5 2022/10/04 05:27
- Java Java 南京錠 2 2023/02/04 11:46
- PostgreSQL 数値が定期的にあらわれる文字列から、いくつめに出現した数値が指定して切り出したい 1 2023/06/08 13:12
- Excel(エクセル) AVERAGE関数とINDIRECT関数を使ってのオートフィル 3 2023/01/12 12:00
- その他(コンピューター・テクノロジー) 【Tableau Desktop】文字列から8桁の数字を日付型(yyyyMMdd)として取得 1 2023/07/31 10:17
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
16進の10進変換について
-
[Ruby] irbにおける文字化け
-
シェルスクリプトで、空白(ス...
-
文字のカラーとフォントの指定...
-
awk の int()に関数について
-
数値かどうかの判定方法
-
DBIがうんともすんとも言いませ...
-
前ゼロ補填
-
変数の中は文字列か数値か調べ...
-
int(input("○○"))の使い方
-
linuxにおけるCの自作ヘッダフ...
-
全組み合わせ
-
pythonで演算子を変数に代入す...
-
swift 文字コードから文字に変...
-
Perlで文字列比較
-
【至急!!!】python言語で本を見...
-
Application.ScreenUpdating = ...
-
セレクトメニューで2つの項目...
-
メモリをアドレスを直接指定し...
-
UWSC:ポップアップウインドウ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
16進の10進変換について
-
【至急!!!】python言語で本を見...
-
pythonで演算子を変数に代入す...
-
数値かどうかの判定方法
-
pythonの*
-
UWSCのSELECT文の記述方法
-
int(input("○○"))の使い方
-
関数「exists」と「defined」の...
-
c言語 16進数の2進数への変換
-
シェルスクリプトで、空白(ス...
-
Perlにおける<?phpinfo();?>の...
-
I2C接続のLCDディスプレイを使う
-
「HSP」でキャラコードを使って...
-
switch文のエラーについて
-
変数の中は文字列か数値か調べ...
-
Use of uninitialized value ---
-
画面上再読み込みをさせたいの...
-
awkの正規表現での最左最短マッ...
-
perでメールが送信出来ない場合...
-
数値英単語変換
おすすめ情報