• ベストアンサー

正規表現または構文で数値の範囲の指定

benderの回答

  • bender
  • ベストアンサー率45% (108/236)
回答No.5

No.2 です。プログラムが動作しなかったとのこと、失礼しました。 後者のプログラムについては、"if( (" の2つの左カッコのうちひとつが余計でした。また、プログラムを投稿する際に、インデントをそろえるために各行のはじめの空白文字に全角を使ったことも問題の一つであったのかもしれません。 いずれにしても、失礼しました!

taku0
質問者

お礼

お忙しい中、わざわざご連絡有難うございます。 ご掲示頂きました内容を再度確認しました所、 前者のは仰る通り全角の空白の為だったようです。 後者のも仰る通りで(が一つ余分と全角の空白になっていたようでした。 内容については、正規表現部分につきましてはBLUEPIXY様のご解説を前提にしている事もあり理解しやすいプログラム内容と拝見する事ができました。 また考え方としまして例を2例もあげて頂き、正規表現だけで解決するのではなく条件分岐を取り入れた形で実現して頂き凄く感謝していますしとても参考になっています。 私自身まだまだ初歩的な事を見落としていて恥かしい限りですが、今回の件を良い機会と受け止め今後の励みに頑張りたいと思います。 この度はbender様にも感謝の気持ちで一杯です。 最後までお付き合い頂き有難うございました!

関連するQ&A

  • 正規表現の検索について

    正規表現のエスケープしなければいけない文字が文字列に含まれているかどうかをチェックしたいのですがうまくいきません。 今は、下記のようにしてnoと表示されます。 よろしくお願いします。 String str ="(1)test"; Pattern p; Matcher m; p = Pattern.compile("\\(1\\)"); m = p.matcher(str); if(m.matches()) { System.out.println("ok"); }else{ System.out.println("no"); }

    • ベストアンサー
    • Java
  • 正規表現によるチェック

    wikiのような掲示板のサイトを作っているのですが、 フォームへの入力値をチェックするところで、困っています。 正規表現を使えばよさそうなのですが、正規表現がよく理解できていないので、申し訳ないのですが、教えてください。 フォームへの入力が #ref(ファイル名1) #ref(ファイル名2) .... という形式に合致しているかをjavascriptでチェックし、合致しない場合はエラーを出したいと考えています。 ここで、ファイル名は 18桁の数字+拡張子 (jpg、pjpeg、gif、png、x-png) から成ります。 以上、すみませんが、ご教授の程よろしくお願いいたします。

  • PHP正規表現

    数字と.の文字列から 最初の.だけ残して 後の.は取り除きたいです。 *必ず数値.数値の形です。 文字列例→期待する値 12.12→12.12 121.152.4.2→121.15242 6.2.4→6.24 $varr = preg_split("/\./","6.2.4"); $varr[0] = "{$varr[0]}."; foreach($varr as $value){ $str .= $value; } echo $str; で出来るのですが、頭悪い感じがして 正規表現で1行とかできませんかねぇ

    • ベストアンサー
    • PHP
  • 秀丸エディタでの正規表現での検索方法について

    以下のように、数字の連番が羅列されていて、半角スペースで区切られている文字列があるとします。 1 2 3 4 5 6 7 8 9 10 1 2 3 1 2 3 4 5 この文字列を以下の単位で検索にHITするようにしたいのです。 ・1 2 3 4 5 6 7 8 9 10 ・1 2 3 ・1 2 3 4 5 ※1から始まる数字列 正規表現での検索でなんとかできないかと試行錯誤していますが、なかなかできません。 ご教授ください。

  • 正規表現を使った入力値のチェック

    こんにちは、yukimura1024です。 perlでブラウザのフォームに入力された値をチェックしたいのですが、 入力された値が「全角文字のみか」と「全角カタカナのみか」 という2種類のチェックのしかたがわかりません。 「数値のみか」のチェックは正規表現を使ってできたのですが、 これと同じように正規表現を使って、この2つの全角チェックをする 方法はないでしょうか? 数値チェックは以下の方法でやっています↓ if ($str_txt_yuubin =~ /[^0-9]/) { print "「郵便番号」を半角数字で入力してください。<br>\n"; } ご存知の方がいましたら教えていただけると助かります。 よろしくお願い致します。

    • ベストアンサー
    • Perl
  • Excel2007で正規表現置き換え

    Excel2007で正規表現を利用して文字列を置き換えしたいと考えています。 Office2003系列のExcelではそういうアドインがあったようです。 (使ったことはないので、どのバージョンまで使えるとかは知らないですが) http://srcedit.pekori.jp/tool/excelre.html 上記のアドインはExcel2007でも使えるのでしょうか? また使えないのでしたら、それに変わるような2007用のアドインがあるのでしょうか? 置き換えしたいデータは以下のようなものです。 1.日付が数字8桁で”文字列として認識されて”入力されている。   例)20080430 2.それを”/”で区切って日付の形式にしたい。   例)2008/04/30 現在は以下のような方法で同じ事を行っています。 A.8桁で入っている列をすべて選択し、形式を数値に変え、コピーしメモ帳に貼り付けます。 B.メモ帳からExcelの同じ選択している列にそのまま貼り付けます。これで数値として認識されます。 C.今度は表示形式を「####"/"##"/"##」とし、数値をスラッシュで区切ります。 D.それをさらにコピーし、メモ帳に貼り付けます。スラッシュ付きの数字として張り付きます。 E.それをコピーし、同じ選択している列に貼り付けます。 F.数値形式のところにスラッシュ区切りのデータを入力したので形式を日付に変更します。 というようなことをしています。 これでもできるのですが、これ以外にも色々と正規表現を利用して置き換えしたいことが出てきた場合はそちらを利用したいので、もしあればお願いします。

  • 「半角数字」と「+」を許可する正規表現の書き方

    「半角数字」と「+」(半角プラス)を許可する正規表現を書きたいです。 検索していて このような電話番号のチェックはよく見掛けます。 preg_match('/^\d{2,5}-?\d1,5}-?\d{3,5}$/', $tel) 今回は、下記のデータを許可したいです。 1+ 1254+ 21+1000+ 5154+45+987+201+ 桁の指定は不要で、+の後ろには数値が無い場合もあります。 「+」は数字の後に必ず付いてきます。 宜しくお願い致します。

    • ベストアンサー
    • PHP
  • コマンドライン引数で正規表現を指定したい

    Perlでgrep -Aのようなことがしたいです。 ---------------grep.pl------------------------------- use strict; use warnings; #コマンドライン引数の確認 if(@ARGV != 3){ die "USAGE: \0 [num] [regex] [file]"; } #数字の読み込み my $num = $ARGV[0]; #正規表現の読み込み my $regex = qr/$ARGV[1]/; #ファイル名の読み込み my $file = $ARGV[2]; #該当行を保存する配列 my @lines = (); open my $fh, '<', "$file" or die "$!"; my @file = <$fh>; close $fh; for(my $i=0; $i<@file; $i++){ if($file[$i] =~ /$regex/){ push @lines, $file[$i]; for(my $j=1; $j<=$num; $j++){ if($i+$j < @file){ if($file[$i+$j] !~ /$regex/){ push @lines, $file[$i+$j]; }else{ last; } }else{ last; } } } } foreach my $item (@lines){ print $item; } ------------------------------------------------- ところが、正規表現がうまく読み込めません。 perl grep.pl 2 \d{4}\/\d{2}\d{2} test.txt などとしても、\d{4}\/\d{2}\d{2}の部分が機能しません。 コマンドライン引数から正規表現を指定するにはどうしたらよいでしょうか。

    • ベストアンサー
    • Perl
  • JavaScriptの正規表現について

    お世話になります。 HTMLでテキストに入力された数値のチェックを下記のようにJavaScriptで行っています。 ---------------------------------------------------------  function check_num(obj) {')   obj_w = document.form_name.elements[obj];')   if(obj_w.value.match(/^\d{0,1}(\.\d{1,3})?$/)){    return 0;   else{    alert("測定値は整数部分1桁、小数部分3桁までの正の数値を入力して下さい。")    obj_w.focus();    return 1;   }  } ----------------------------------------------------------- このとき、チェックする整数部分、小数部分の桁数を変数にして汎用性のある関数にしたいのですが、正規表現のなかで変数を使うにはどのようにしたらよいのでしょうか? よろしくお願い致します。

  • htaccessの正規表現でのリダイレクト記述方法

    htaccessの正規表現でのリダイレクト記述方法についてお尋ねします。 http://xxx.com/123456 とアクセスがあった時に http://xxx.com/no/123456.html にリダイレクトする書き方を教えてください。 なお、 1)xxx.jp/にはindex.htmlやその他のファイルが存在する予定です。 2)「123456」に当たる部分は必ず数字6ケタです。