【Java】正規表現で括弧()を含む文字列に一致させる方法とサンプルコード
Javaで文字列の中に括弧「(」や「)」が含まれているかどうかを判定したい場合、正規表現を使うと簡単に実装できます。この記事では、括弧に一致する正規表現の書き方と、実際に動作するサンプルコードを2つのパターンで紹介します。
括弧に一致する正規表現
以下の正規表現は、括弧を含む文字列を受け入れます。
"^.*[\\(\\)].*$";
このパターンの各要素は次のような意味を持っています。
- ^ … 文字列(行)の先頭に一致します。
- .* … 0個以上の任意の文字に一致します。
- [\\(\\)] … 括弧「(」または「)」に一致します。正規表現では括弧は特殊文字のため、バックスラッシュでエスケープする必要があります。
- $ … 文字列(行)の末尾を示します。
つまりこのパターンは、「先頭から末尾までの間のどこかに括弧が1つでも含まれていればマッチする」という意味になります。
例1:PatternクラスとMatcherクラスを使う方法
java.util.regex パッケージの Pattern クラスと Matcher クラスを使用して、ユーザー入力に括弧が含まれているかを判定する例です。
import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class SampleTest {
public static void main(String args[]) {
String regex = "^.*[\\(\\)].*$";
// ユーザーからの入力を読み込む
Scanner sc = new Scanner(System.in);
System.out.println("データを入力してください:");
String input = sc.nextLine();
// Patternクラスのインスタンスを生成
Pattern pattern = Pattern.compile(regex);
// Matcherクラスのインスタンスを生成
Matcher matcher = pattern.matcher(input);
// マッチしたかどうかを確認
if(matcher.find()) {
System.out.println("入力を受け付けました");
} else {
System.out.println("受け付けられませんでした");
}
}
}実行結果1(括弧を含む場合)
データを入力してください: sample(text) with parenthesis 入力を受け付けました
実行結果2(括弧を含まない場合)
データを入力してください: sample text 受け付けられませんでした
例2:String.matches()メソッドを使う方法
よりシンプルに実装したい場合は、Stringクラスの matches() メソッドを使う方法もあります。このメソッドは、文字列全体が正規表現パターンに一致するかどうかをboolean値で返します。
import java.util.Scanner;
public class Example {
public static void main(String args[]) {
// ユーザーから文字列を読み込む
System.out.println("メールアドレスを入力してください:");
Scanner sc = new Scanner(System.in);
String e_mail = sc.nextLine();
// 正規表現
String regex = "^.*[\\(\\)].*$";
boolean result = e_mail.matches(regex);
if(result) {
System.out.println("有効なマッチです");
} else {
System.out.println("無効なマッチです");
}
}
}実行結果1(括弧を含む場合)
メールアドレスを入力してください: sample(text) with parenthesis 有効なマッチです
実行結果2(括弧を含まない場合)
メールアドレスを入力してください: sample text 無効なマッチです
まとめ
括弧を含む文字列を判定するには、"^.*[\\(\\)].*$" のような正規表現パターンを使用します。柔軟な制御が必要な場合はPattern・Matcherクラス、簡潔に書きたい場合はString.matches()メソッドが便利です。用途に応じて使い分けるとよいでしょう。
-
Java正規表現(RegEx)で任意の文字にマッチさせる方法
Javaの正規表現におけるメタ文字「.」(ドット)は、任意の1文字にマッチします。マッチ対象はアルファベットでも数字でも、記号などの特殊文字でも構いません。メタ文字「.」の基本「.」は改行文字以外のあらゆる単一文字と一致するため、パターンの柔軟性を高めたい場面で非常に便利です。なお、ドットそのもの(リテラルの「.」)にマッチさせたい場合は、バックスラッシュでエスケープして「\.」と記述します。例1:任意の1文字とのマッチ次のプログラムでは、ユーザーから入力された文字列に対して正規表現「.」を適用し、文字数をカウントしています。import java.util.Scanner; import j
-
Javaで文字列内の母音をカウントする方法をわかりやすく解説
Javaでは、拡張forループと条件分岐を組み合わせることで、文字列に含まれる母音(a、e、i、o、u)の数を簡単にカウントできます。この記事では、基本的な実装方法をサンプルコード付きで解説します。 カウントの仕組み まず、カウント用の変数 count を 0 で初期化します。これは、母音の数をこの変数に加算していくためです。 次に、toCharArray() メソッドを使って文字列を1文字ずつ取り出し、Character.toLowerCase() ですべて小文字に変換します。これにより、大文字・小文字を区別せずに母音を判定できるようになります。 for(char ch : myStr.t