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

PHPで文字列に特殊文字が含まれているかどうかを判定する方法

PHPでは、正規表現を使うことで文字列の中に特殊文字(記号)が含まれているかどうかを簡単にチェックできます。本記事では、preg_match() 関数を活用した具体的な実装例を紹介します。

サンプルコード

<?php
    function check_string($my_string){
        $regex = preg_match('[@_!#$%^&*()<>?/|}{~:]', $my_string);
        if($regex)
            print("String has been accepted");
        else
            print("String has not been accepted");
    }
    $my_string = 'This_is_$_sample!';
    check_string($my_string);
?>

出力結果

String has not been accepted

コードの解説

まず、check_string という名前の関数を定義しています。この関数は、引数として文字列を受け取ります。

$my_string = 'This_is_$_sample!';

次に、正規表現 [@_!#$%^&*()<>?/|}{~:] を用いて、対象の文字列に特殊文字が含まれているかどうかを preg_match() で判定します。特殊文字が1つでも見つかった場合には該当するメッセージが出力され、見つからなかった場合には別のメッセージが表示されます。

function check_string($my_string){
    $regex = preg_match('[@_!#$%^&*()<>?/|}{~:]', $my_string);
    if($regex)
        print("String has been accepted");
    else
        print("String has not been accepted");
}

関数の外側でチェックしたい文字列を定義し、その文字列を引数として渡すことで関数を呼び出します。上記の例では、文字列 'This_is_$_sample!'$_! などの記号が含まれているため、「String has not been accepted」という結果が出力されます。

このように、正規表現と preg_match() を組み合わせれば、バリデーション処理などにおいて特殊文字の有無を柔軟に判定することができます。必要に応じて正規表現のパターンを変更すれば、許可する記号や判定条件を自由にカスタマイズ可能です。

  1. Pythonで文字列にm個の連続した1または0が含まれているかを判定する方法

    2進数のみで構成された文字列 s と整数値 m が与えられたとき、その文字列の中に m個連続した「1」 または m個連続した「0」 が含まれているかどうかを判定する問題を考えてみましょう。たとえば、入力が s = 1110111000111、m = 3 の場合、「000」という3つ連続した0や「111」という3つ連続した1が存在するため、出力は True になります。解決のアプローチこの問題は、文字列を先頭から順に走査しながら、連続する「0」と「1」の出現回数をそれぞれカウントすることで解決できます。具体的には以下の手順に従います。str_size := 文字列 s の長さcount_0 :=

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

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