Java
 Computer >> コンピューター >  >> プログラミング >> Java

【Java】正規表現を使って文字列に特殊文字が含まれているかチェックする方法

文字列の中に特殊文字(記号)が含まれているかどうかを確認する場面は、ユーザー入力のバリデーションなどでよくあります。Javaでは java.util.regex パッケージの Pattern クラスと Matcher クラスを利用することで、正規表現によるシンプルなチェックが可能です。

サンプルコード

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class Demo {
   public static void main(String[] args) {
      String my_str = "This is a sample only !$@";
      Pattern my_pattern = Pattern.compile("[^a-z0-9 ]", Pattern.CASE_INSENSITIVE);
      Matcher my_match = my_pattern.matcher(my_str);
      boolean check = my_match.find();
      if (check)
         System.out.println("文字列に特殊文字が見つかりました");
      else
         System.out.println("文字列に特殊文字は含まれていません");
   }
}

実行結果

文字列に特殊文字が見つかりました

プログラムの解説

まず、Demo クラスの main メソッド内で、特殊文字を含む文字列 my_str を定義しています。

次に、Pattern.compile("[^a-z0-9 ]", Pattern.CASE_INSENSITIVE) によって正規表現パターンを生成します。このパターンは「半角英字(a〜z)、数字(0〜9)、半角スペース以外の文字」、すなわち特殊文字にマッチすることを意味します。CASE_INSENSITIVE フラグを指定しているため、大文字と小文字は区別されません。

続いて、Matcherfind() メソッドを呼び出すことで、対象の文字列内にパターンに一致する部分が存在するかどうかが判定され、その結果が boolean 型の値として返されます。

最後に、この真偽値が true であれば「特殊文字が見つかった」ことを示すメッセージを出力し、false であれば「特殊文字は含まれていない」ことを示すメッセージを画面に表示します。

  1. Swiftで文字列に特殊文字が含まれているか判定する2つの方法

    Swiftで文字列に特殊文字が含まれているかどうかを確認したい場合、if文やswitch文による条件分岐でも実現できますが、その場合は膨大な条件式を記述する必要があり、コーディングにも実行速度にも大きな負担となってしまいます。そこで本記事では、正規表現を使う方法と、Swift標準のCharacterSetを活用する方法の2通りを、具体的なコード例とともにわかりやすく解説します。 方法1:正規表現を使って判定する まずはString型のextensionを作成し、特殊文字の有無を判定するプロパティを追加しましょう。 extension String { var containsSpeci

  2. 文字列に特殊文字が含まれているかどうかを確認するPythonプログラム

    このチュートリアルでは、文字列に特殊文字(記号)が含まれているかどうかを判定するプログラムを作成します。Pythonを使えば、ごくシンプルなコードで実装できます。 Pythonのstringモジュールには、特殊文字のセットがあらかじめ用意されています。これを活用することで、文字列の中に特殊文字が存在するかどうかを簡単にチェックできます。それでは、プログラム作成の手順を順番に見ていきましょう。 stringモジュールをインポートします。 string.punctuationから特殊文字の一覧を取得し、変数に格納します。 判定対象となる文字列を初期化します。 map関数を使って、文字列に特殊文字