これは Java の RegEx に関する質問です。私はどこでも見ましたが、必要なものに似たものを見つけることができませんでした. また、私は自分で何時間もかけて試しました。
私は、Java でコーディングされた学校の研究室の最後の部分にいます。Eclipse をコンパイラとして使用しています。Swing コンポーネントを使用してメンバーシップ アプリケーションを作成しました。
私のフィールドの 1 つは、ユーザーが 10 桁の電話番号を入力するためのものです。ただし、これを JFormatted テキスト フィールドにし、テキスト ボックスを "(###) ###-####" の形式でマスクする必要がありました。したがって、プログラムがロードされると、そのテキスト ボックスは次のようになります: "( _)- ___"
あとは、ユーザーが 10 桁で入力できるようにする正規表現を作成するだけです。ただし、上で使用したマスクされた形式で動作する必要があります。これは私がこれまでに持っているものです:
pattern = Pattern.compile("\\d{3}\\s\\d{3}-\\d{4}");
matcher = pattern.matcher(phoneText.getText());
if (!matcher.find())
{
phoneText.requestFocus();
JOptionPane.showMessageDialog(null, "Phone entered incorrectly. Phone should be:\n" +
"10 numeric digits.",
"A D D E R R O R",JOptionPane.ERROR_MESSAGE);
return;
}
マスク形式でスペースとダッシュを受け入れる場所に正規表現が書き込まれていると思いますが、括弧を含める方法がわかりません。
編集: Andrew Thomas のヒントに従って、正しい形式で質問を追加します。
書式設定されたテキスト フィールドに既にある括弧を含めるには、regEx に何を追加する必要がありますか?
Edit2: 質問に回答しましたが、ボヘミアンのヒントごとにサンプルを追加して、この投稿に出くわした将来の学生がそれを利用できるようにします。申し訳ありませんが、私はこれが初めてです!
次のようにする必要があります。
(123) 456-7890