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を返します。
これと同じような関数等を探しているのです。
まだいろいろな方法を知りたいので、「私はこうしてるよ」という方がおられましたら、ご回答よろしくお願いします。
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";
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ランキング
-
I2C接続のLCDディスプレイを使う
-
swift 文字コードから文字に変...
-
python print文のエラー
-
Pythonでターミナルに文字を出...
-
pythonの*
-
python で連想配列に代入、キー...
-
CGIでimgタグでalignを使うとエ...
-
Perlの例文でif($a==1&&$b==5&&...
-
MAXnum = input('最大数は?') f...
-
16進の10進変換について
-
数値かどうかの判定方法
-
pythonで演算子を変数に代入す...
-
【至急!!!】python言語で本を見...
-
perでメールが送信出来ない場合...
-
シェルスクリプトで、空白(ス...
-
Application.ScreenUpdating = ...
-
構造体の各データの表示につい...
-
セレクトボックスである項目を...
-
JSONで文字列が長い時
-
[python] 文字列を変数名として...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Pythonでターミナルに文字を出...
-
16進の10進変換について
-
パイソンのクラスについて
-
【至急!!!】python言語で本を見...
-
シェルスクリプトで、空白(ス...
-
I2C接続のLCDディスプレイを使う
-
int(input("○○"))の使い方
-
数値かどうかの判定方法
-
pythonで演算子を変数に代入す...
-
awkの正規表現での最左最短マッ...
-
Pythonでコンソールをクリアす...
-
pythonを使ったプログラミング...
-
c言語 16進数の2進数への変換
-
関数「exists」と「defined」の...
-
ソケットでのデータ送受信につ...
-
pythonの*
-
Perlの例文でif($a==1&&$b==5&&...
-
数値をスラッシュで区切る方法
-
変数の中は文字列か数値か調べ...
-
PythonでUTF8の文字列をリスト...
おすすめ情報