OKWAVEのAI「あい」が美容・健康の悩みに最適な回答をご提案!
-PR-
解決
済み

入力テキストの属性のチェック

  • 困ってます
  • 質問No.194462
  • 閲覧数974
  • ありがとう数1
  • 気になる数0
  • 回答数2
  • コメント数0

お礼率 40% (6/15)

Perlからcsv形式のデータを読み込み、1項目ごとに属性のチェックをしたいのですが、
属性を調べる方法を教えてください。
項目長はlength関数で調べることが出来るのですが、属性を調べる関数がなかなか見つからないのです。
よろしくお願いいたします。
通報する
  • 回答数2
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

質問者が選んだベストアンサー

  • 回答No.2

 やはり属性というのは数字かアルファベットか記号か、といったような判別のことのようですね。

 であれば、そもそも Perl にそういう関数はありません。
 なぜなら、正規表現というものがあるから必要ないんです。

 先の回答で /-?[\d\.]/ という、呪文のようなものを書きましたが、これが正規表現です。
 正規表現とは、「文字列中に特定の文字パターンが含まれているか」をチェックするためのロジックです。
 語りだすとキリがないので、今のところは鵜呑みにしといてもらうことにして、(2)の件はこうします。

 if ( $data =~ /[^A-Za-z0-9]/ ) {
  # アルファベットもしくは数字以外を含む
 } else {
  # アルファベットもしくは数字のみ
 }

 このロジックは、$data の中身が英数字だけで構成されているかどうかをチェックします(本式で書くともちょっと変わりますが、この書き方が分かりやすいので)。
お礼コメント
you_s

お礼率 40% (6/15)

ありがとうございます。
ひととおり参考書は目を通したつもりだったのですが、
どうも正規表現(特に記号の羅列)は苦手意識があるようで…
勉強が足りませんね。
これから少しずつ克服していきます。
投稿日時 - 2002-01-08 16:36:20
-PR-
-PR-

その他の回答 (全1件)

  • 回答No.1

 CSV形式で保存されたデータには「属性」という概念はありませんので、これをチェックする関数はなくて当然なのです(^_^;  属性というのは、数値か文字列か、といったようなチェックでしょうか?  もしそうであれば、Perl には IsNumeric 関数がありませんので、たとえばこのようにします。  if ( $data =~ /-?[\d\.]/ ) {   # 数値  } else ...続きを読む
 CSV形式で保存されたデータには「属性」という概念はありませんので、これをチェックする関数はなくて当然なのです(^_^;
 属性というのは、数値か文字列か、といったようなチェックでしょうか?

 もしそうであれば、Perl には IsNumeric 関数がありませんので、たとえばこのようにします。

 if ( $data =~ /-?[\d\.]/ ) {
  # 数値
 } else {
  # 文字列
 }

 これは、$data の中身が数字(とマイナス記号とピリオド)だけで構成されているかどうかをチェックします。
補足コメント
you_s

お礼率 40% (6/15)

すみません。
CSV形式のデータと書きましたが、テキスト形式のデータでした。

(1)テキストデータの属性チェック関数なるものはあるのですか?

(2)回答の記述では、数値か文字列化のチェックは出来ますが、英数字であるかどうかのチェックはどのようにすればよいのでしょうか。

よろしくお願いいたします。
投稿日時 - 2002-01-08 15:03:51


このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ