条件分岐のアドバイスをお願いします

このQ&Aのポイント
  • 条件分岐での$teldataの内容によって処理を分岐させたいです。
  • 具体的には、$teldataに/(スラッシュ)が含まれればAを、/が含まれなければBを実行したいです。
  • 現在は正規表現の記述を試してみましたがうまくいかず、アドバイスを求めています。
回答を見る
  • ベストアンサー

単純な条件分岐だと思いますが。。。

単純な条件分岐だと思いますが、アドバイスをお願いします。 if(条件) { A } else { B } 条件についてですが、$teldataに/(スラッシュ)が含まれればAを。 /が含まれなければBを。 と行った具合にしたいのですが、$teldataに/が含まれるか含まれないを判断するには、どのように記述すれば良いでしょうか。 $teldataには電話番号(例:03-1234-5678)が入ります 私はperlを本格的に勉強しているのではないのですが、検索していろいろと調べてみました。 $teldata = ~/["/"]/ 一応自分なりに上記のようにしてみましたが、ダメでした。 アドバイスを頂けると助かります。 よろしくお願いします。

  • Perl
  • 回答数1
  • ありがとう数1

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

  • ベストアンサー
  • ysk6406
  • ベストアンサー率40% (237/589)
回答No.1

Perl には、同じことをするのに色々な書き方があるのですが、以下のようにするのが、いちばん簡単だと思います。 if ($teldata =~ /\//) {   A } else {   B }

Cuty_Cat
質問者

お礼

御回答ありがとうございます。 1つ大きな間違いをしていました(^^; =と~の間に半角スペースを入れてしまってました。 半角スペースがあるとダメなんですね。 =~として、\を付けたら無事に動作するようになりました。 ありがとうございました(ー_ー)

関連するQ&A

  • 条件分岐(if)について

    条件分岐(if)についてお聞きしたことがあります。 例えば if($a == 'A' || $a == 'B'){ 処理 }else if($a == 'C' || $a == 'D' || $a == 'E'){ 処理 }............... といった条件分岐があったとて、お聞きしたいことが2点あります。 ・条件分岐この後も数十個続いたとします。その場合もelse ifで一つ一つ 条件を書かなければならないのでしょうか? ・条件式if($a == 'A' || $a == 'B'....)が長くなる場合プログラムが見にくくなるので 別途に条件式を書いておいてif文の所では($a == ◯)といったように簡潔に書くことは できないのでしょうか? 宜しくお願いします。

    • ベストアンサー
    • PHP
  • 条件分岐によるページ移動

    超簡単な質問で申し訳ないですが、宜しくお願いします。ネット上をいろいろ検索したのですが、わからず、ご質問させてください。 CGIで、 条件Aのときは「A.HTML」 条件Bのときは「B.HTML」 条件Cのときは「C.HTML」 というように条件分岐によるページ移動をしたいのです。 条件分岐の記述はわかるんですが、ページ移動の記述の方法がわからず悩んでおります。 宜しくお願いいたします。

    • ベストアンサー
    • CGI
  • プログラミングソースコード(アルゴリズム)の条件分岐の記述の仕方

    C言語始め擬似言語等プログラムで条件分岐はif~else以外にないのでしょうか?3つ以上に分岐する場合どのように記述するのでしょう?

  • MSExcel2003で条件分岐の方法

    今まで、条件AまたはBである時は真・それ以外は偽を返す式を作るとき =if(A1="A","真",if(A1="B","真","偽")) という式を作ってきました。これをor記号を使って =if(A="A"or"B","真","偽") というように作り替えたいのですが,うまくいきません。 今は二つの条件に合わない場合は偽としていますが、これが 5つくらいになってくるとこの方法補煩雑で間違いが多くなり使えないのですが、 どうすれば上手な条件分岐をすることができますか?

  • Wordpressの条件分岐について

    Wordpressの条件分岐について質問です。 カテゴリー毎に表示される記事のデザインを変更したいのですが、 複数のカテゴリーに登録した際に思い通りに表示できません。 「cate01(ID:1)」と「cate02(ID:2)」の2つのカテゴリーがあり、 表示する記事ページ(single.php)のデザインを分けています。 「cate01(ID:1)」は「single01」、「cate02(ID:2)」は「single02」という具合です。 そこで、「cate01(ID:1)」と「cate02(ID:2)」の両方に該当する記事の場合、 「cate02(ID:2)」からリンクされた記事を表示すると「cate01(ID:1)」のテンプレートが割り当てられてしまいます。 現状「single.php」で以下のように条件分岐させているのですが、 先に「cate01(ID:1)」の記述があるので、優先されるのではないかと思います。 <?php if ( in_category('1') ) { include(TEMPLATEPATH . '/single01.php'); } else if ( in_category('2') ) { include(TEMPLATEPATH . '/single02.php'); } else { include(TEMPLATEPATH . '/index.php'); } ?> 「cate02(ID:2)」から「single02」を表示するにはどうすればよいでしょうか? 当方PHP初心者ですので、あまり詳しいことはわかりません。 どうぞよろしくお願いいたします。

    • ベストアンサー
    • PHP
  • 条件分岐

    Windows2000 access2000 毎月Excelで材料費を以下のように入力しています。 店番号、日付、金額 000001,2006/07/01,1000 000001,2006/07/02,1450 000001,2006/07/03,2000 このシートを翌月にaccessにインポートします。 インポートを指示するためのフォームを作成し、店、年、月を指定して実行ボタンでインポートを行うようにしました。 このとき月の日数にあわせてインポートするシートの範囲を指定するため以下のような条件分岐にしました。 If Me!月 = "02" Then DoCmd.TransferSpreadsheet acImport, 8, "材料費", fname01, True, "材料!a2:c30" ElseIf Me!月 = "04" Or "06" Or "09" Or "11" Then DoCmd.TransferSpreadsheet acImport, 8, "材料費", fname01, True, "材料!a2:c32" Else DoCmd.TransferSpreadsheet acImport, 8, "材料費", fname01, True, "材料!a2:c33" End If ところが上2つの条件では正常にインポートされるのですが、3番目の条件でインポートを指示しても2番目の条件でインポートされてしまいます。順番を入れ替えても同じ結果になりました。 何がいけないのでしょうか。 よろしくお願いします。

  • 条件演算子 ? :

    条件演算子 ”?:”をつかってif分と同じようなことができると知りました。 c = (a>b) ? a : 0 ; というようにスルのですが、ふと、条件に満たない場合はそのまま、という場合にはどう記述したらいいのかわかりません。ためしに c = (a>b) ? a : c ; としてみました。これで正しく動作したのですが、 //(a<=b)のときは c = c ; ということになるんですよね。これってなんとなく”無駄”な感じがします。 if文でいうと、"else"を記述しない場合の書き方で、スマートなものはないでしょうか?

    • ベストアンサー
    • Java
  • Microsoft ASPの条件分岐のソースコード

    ISのWEBサーバーでASP Scriptでサイトを昔作ってもらったプログラムソースを参考にしながら 作成にトライしていますが、、ASP Scriptで特定の文字列が含まれる場合の処理方法ですが、 そのソースコードは電話番号の変数名を「tel」としており、この変数に値がない、つまりNULL値であれば、エラーメッセージを出す場合には、以下のような記述になっています If tel = "" Then err_msg = err_msg & "<br>電話番号を入力してください!" Else If get_len(tel) > 15 Then err_msg = err_msg & "<br>T電話番号の文字数が多すぎます!" Else err_msg = err_msg & hafu_ck(tel,"TEL") End If End If これを特定、文字が変数「tel」に(仮に「a」という文字が)含まれている場合には 「電話番号が間違えています!」というエラーメッセージを出したいのですがその場合、 If tel = "*a*" Then err_msg = err_msg & "<br>電話番号が間違えています!" Else If get_len(tel) > 15 Then err_msg = err_msg & "<br>T電話番号の文字数が多すぎます!" Else err_msg = err_msg & hafu_ck(tel,"TEL") End If End If という記述では間違えているのでしょうか。 実際に記述しててみると「a」以外の文字でも 「電話番号が間違えています!」というエラーメッセージが出てきてしまいます。 また他にも「a」だけなく「b」も含まれている文字列の場合にも同様の処理をしたいのですが、 その場合、以下のような記述では間違っているのでしょうか? If tel = "*a*" or "*b*" Then err_msg = err_msg & "<br>電話番号が間違えています!" Else If get_len(tel) > 15 Then err_msg = err_msg & "<br>T電話番号の文字数が多すぎます!" Else err_msg = err_msg & hafu_ck(tel,"TEL") End If End If 実際に記述しててみると前述と同様に「a」「b」以外の文字でも 「電話番号が間違えています!」というエラーメッセージが出てきてしまいます。 「複数の文字列の中に特定の文字が含まれている場合」のASPScriptでの If文の書き方をご存知の方は教えて頂けませんでしょうか

  • 条件分岐が多いIF分の書き方について。

    テキスト入出力でのIF分についてご質問がございます。 例えば条件が多いときに、結果が得られない時があるのですが 書き方で何か問題があるのならご指摘ください。 下記のコードでご説明します。 //コード1の文字列が04でコード2の文字列が01の場合00001を表示 if (コード1.compareTo ("04") == 0 && コード2 .compareTo ("01") == 0 ) { out.print ("00001"); //コード1の文字列が04でコード3の文字列が2の場合00005を表示 } else if (コード1.compareTo ("04") == 0 && コード3 .compareTo ("02") == 0 ) { out.print ("00005"); //コード1の文字列が08でコード3の文字列が07の場合10000を表示 } else if (コード1.compareTo ("08") == 0 && コード3 .compareTo ("07") == 0 ) { out.print ("10000"); //コード1の文字列が10でコード5の文字列が07の場合30000を表示 } else if (コード1.compareTo ("10") == 0 && コード5 .compareTo ("07") == 0 ) { out.print ("30000"); //それ以外エラー } else { out.print("エラー");} } 値がIF分の条件とマッチしていても if (コード1.compareTo ("04") == 0 && コード2 .compareTo ("01") == 0 ) { out.print ("00001"); //コード1の文字列が04でコード3の文字列が2の場合00005を表示 } else if (コード1.compareTo ("04") == 0 && コード3 .compareTo ("02") == 0 ) { out.print ("00005"); //コード1の文字列が08でコード3の文字列が07の場合10000を表示 } else if (コード1.compareTo ("08") == 0 && コード3 .compareTo ("07") == 0 ) { out.print ("10000"); このコードまでに当てはまらない条件はすべて ("10000"); の結果になり つまりそれ以降のelse if の条件に 当てはまらなくなります。 else if をいくらでも増やして条件分岐出来ると学習して 検証しているのですが・・・ 最終的にがIF~else if ~elseで 30パターンぐらい条件分岐したいと思ってます。 初歩的なご質問で恐縮ですが アドバイス よろしくお願いします。

    • ベストアンサー
    • Java
  • エクセルの条件分岐について教えて下さい。

    エクセルの条件分岐について教えて下さい。 現在、エクセル2003を使っています。 A1セルが「空白」「ON」というプルダウンリストになっていて、「ON」を選択するとB1セルに「はじまり」、C1セルに「おわり」という文字が表示されるようにしたいと考えています。 色々調べてみて参考になるものをようやく見つけて、自分でカスタマイズしてみました。 Sub 条件分岐 () if Range("A1").value = ON    Range("B1").value = "はじまり"    Range("C1").value = "おわり" End if End Sub これをシート部分を「右クリック→コードの表示」で書いてみたのですが動きませんでした。 どうすれば思うようにできるか分からずつまづいております。 お手数ですが、どなたかご教授頂けないでしょうか?

専門家に質問してみよう