• ベストアンサー

正規表現について

お世話になっております。 現在、JAVAで開発を行っていますが、わからないことがあります。 1-1-1-01,1-2-1-01,1-3-1-01といった様な、数字+"-"ハイフンの文字列8桁が入力されているのかどうかのチェック処理が上手くできません 。 if(Pattern.matches("\d{1}-\d{1}-\d{1}-d{2}")){ } 上記で記載して上手く動作しません。 どなたかご存知でしたら教えて頂けませんでしょうか? よろしくお願いいたします。

  • Java
  • 回答数2
  • ありがとう数1

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

  • ベストアンサー
  • hegemon
  • ベストアンサー率72% (21/29)
回答No.2

"^\\d{1}-\\d{1}-\\d{1}-\\d{2}$" 上記のように、行頭に'^'、行末に'$'を追加しないと、完全一致にならないと思います。 あと、最後のdの前にも\\が必要ですね。

その他の回答 (1)

  • askaaska
  • ベストアンサー率35% (1455/4149)
回答No.1

この場合、ハイフンは関係ないわ。 Javaでは文字列中に\を含めるときに エスケープしないといけないのよ。

関連するQ&A

  • matches()での正規表現

    現在、Stringクラスのmatchesメソッドを使用して、入力値のチェックをしようと思っているのですが、 正規表現で質問をさせてください。 正しいパターンは → 「00XX-XX」です。(Xは任意の数字) 頭は0が2個、Xが2個、ハイフン、Xが2個、です。 これを正規表現で表すと、 「^(00)\\d{2}\\-\\d{2}$」としているのですが、ハイフンの前の\\を除去して、 「^(00)\\d{2}-\\d{2}$」でも結果が変わらない様な気がします。 この二つの違いは何なのでしょうか?? 具体的にどちらかがtrueとなる入力値等があったら教えてください。 よろしくお願いします。

  • javaの正規表現について質問です。

    javaの正規表現matchesに関して質問です。 正規表現を用いて文字列が半角数字のみで出来ているかどうかを判定したいと思っています。 調べたとろこ下記の正規表現で判定できそうなのですが、 正規表現のルールが理解できず困っています。 ------------------------------------------- String aaa = "0123456789"; //パターン1 aaa.matches("^[0-9]{10,11}$"); //パターン2 aaa.matches("^[0-9]+$") ------------------------------------------- パターン1 ^[0-9]   →  文字列の先頭が0~9か判定 {10,11}   →  10~11回繰り返す(繰り返すというのは[0-9]かどうかということでしょうか?)           12文字目に文字を入れた下記文字列でもfalseが返ってきました。           解釈が間違えている?           String aaa = "0123456789a"; $      →  文字列の最後が[0-9]を10~11回繰り返しているかどうか? パターン2 ^[0-9]   →  文字列の先頭が0~9か判定 +$ →  文字列の最後が???? すいません自分で書いてて混乱してきました。 どなたかアドバイス下さい。

    • ベストアンサー
    • Java
  • 正規表現[0-9]

    ある文字列が大文字のアルファベット(A~Z)で構成されていることを正規表現を用いてチェックしたいと思ってます。 例えば "A0001" という文字列が A~Z で構成されているかを判断しるにはどうしたらよいですかね?? PatternクラスとかMatcherクラスとかを使用するみたいなんですが、なんかよくわかりません。 以下のように動かしたんですが、全く動きません。 boolean result_flag=false; if("A0001"=[A-Z]){   result_flag=true; } Javaおよびプログラム初心者でわかりずらくてすいませんが、 どうかお助けをよろしくお願いいたします。

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

    お世話になります。 ●●● ●●● という文字列かどうか判断する正規表現を作成したいです。 条件としては、 ・「文字1 (←全角スペース)文字2」という感じで、文字1と文字2に全角スペースが挟まれている感じで、文字列の先頭にも末尾にも空白文字は入ってはいけない(真ん中に1つのみ) ・文字1と文字2には、数字・空白以外の文字が入る(主に感じ・ひらがな・カタカナが入る)(文字数は一文字以上) といったところです。 自分で作成した正規表現は、 $pattern = '/^([\d\S])+ ([\d\S])+$/'; if( !preg_match($pattern,$chkStr) ) print "マッチしていない"; } なんですが、どうもマッチしてほしい文字にマッチしていないようなのです。 お手数ですがご教授ください。

    • ベストアンサー
    • PHP
  • InDesign 正規表現 一桁の数字

    5(20.0%) 0(0.0%) 10(40.0%) こんな感じで一桁と二桁の数字が混じっている文字列の 一桁の数字の前に数字のスペースをつけて桁揃えしたいです 検索: (?<=[^\d\.])(\d)(?=\D) 置換: ~/$1 こんな感じで書いたんですがこれでは 文字列の一番最初のものが引っかかりません 「行頭または数字かドット以外に続く」 というのを表現できればいいのですが いろいろ試してもうまくいきません どう書けばいいのでしょうか

  • 正規表現

    お世話になります。正規表現の質問です。 \w に当たる文字とハイフンに合致するが、少なくとも一文字はアルファベット(a-z)またはハイフン(-)が含まれていなければならない(つまり、数字だけの文字列は合致しない) という正規表現はどうあらわせばよいでしょうか。 以上、よろしくお願いします。

    • ベストアンサー
    • Perl
  • 正規表現

    正規表現で次の文字列を認識する方法を教えてください 1. (000) (999) ()でくくられている3桁の数字。カッコを含みます 3桁の数字文字列だけなら'[0-9][0-9][0-9]' ?? 2. [あああ] (あああ) いあああ+ rあああ> 文字列'あああ'の前後の任意の文字、半角、全角両方OKを含む5文字 文字列がカッコの場合もあり

  • 日本語の正規化表現

    urizakaです J2SDK1.4から正規表現が標準についたと知り、さっそくカタカナエラーチェックのためのBeanを作ってみたのですが、どんな文字列(カタカナ、英語、ひらがな…etc)と比較させても「False」しか戻ってこないという状態で、うまく行きません。 /** *カタカナエラーチェック:カタカナは使われているかどうか? *@param s 調べる **/ public boolean checkKkana(String s){ Pattern pattern = Pattern.compile("[^アイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨワヲン]"); Matcher matcher = pattern.matcher(s); boolean check = matcher.matches(); return check; } } もしかすると、日本語を処理するのには特別な方法が必要なのでしょうか? すみませんが、よろしくお願いします

    • ベストアンサー
    • Java
  • 【Java script】replaceの正規表現

    java scriptでreplaceを使って文字列の変換を行うことを考えています。 どのように書けばよいでしょうか、教えてください。 状況ですが、 文字列:「d(e)-4-yl」 を 文字列:「d-4-yl」 と変換します。 文字列は下記の通りです。   アルファベット (e) ハイフン 数字 ハイフン yl 例:   d   (e)  -    4   -   yl アルファベットと数字は様々な数字とアルファベットが入ります。 その他の例 「n(e)-2-yl」 → 「n-2-yl」 例えば下記は変換しません。 d(e)-4-wer、d(e)-4-cd、d(e) よろしくお願いします。

    • ベストアンサー
    • Java
  • VBScriptでの正規表現パターンマッチ

    ASPプログラムの中で 文字列のパターンマッチを正規表現で行ないたいと考えています。 英字と数字両方を組み合わせた文字列(英字と記号且つ数字)であることをチェックしたいのですが 以下のようなロジックでは、英字、数字どちらかだけの文字列もマッチしてしまうのではと思います。 ほかによい書き方はありますでしょうか? Dim strTEST TESTCHECK = 0 Dim objRE Set objRE = new RegExp objRE.pattern = "[_\-a-zA-Z0-9]" If (objRE.Test(strTEST) = True) Then Else TESTCHECK = 1 End If Set objRE = Nothing よろしくお願いいたします。

専門家に質問してみよう