PHPで英数字以外の文字を削除してみます。
■環境
・Windows10
・WampServer Version 3.2.3 64bit
・PHP Version 7.3.21
■英数字以外の文字を削除する
では、早速PHPで英数字以外の文字を削除するスクリプトを書いていきます。
■コード
<?php
$str="?#$%&!@Helloworld!?%&%&%&";
$str = preg_replace( '/[\W]/', '', $str);
echo($str);
?>
PHPで英数字以外の文字を削除するためには、今回はstrという変数を定義し、その中に英数字、そして英数字以外の文字列を記述し、格納します。
格納後、strという変数に対して、preg_replace()を使用します。これを使用することで、正規表現で文字列を置き換えることができます。括弧内で第1の引数に、英数字以外の文字の組み合わせを指定させるために、「/ (スラッシュ) 」で[\W]を囲います。
なお、正規表現では「\W」は、英数字以外の文字の組み合わせを意味します。
次に第2の引数では、英数字以外の文字を削除するために、空白を指定します。
そして、第3の引数では、正規表現で文字列を置き換えるために、strという変数を指定します。
最後に、echo文で正規表現で置き換えた文字列が格納されたstrという変数を出力します。
■実行
では、このスクリプトを「hello.php」という名前で保存し、実行させてみます。
実行してみると、今回strという変数を定義し、その中に格納した文字列の中で、英数字以外の文字が削除され、出力されました。
■英数字を一致させずに、それ以外の文字を削除する
では、次に正規表現で英数字を一致させずに、それ以外の文字を削除するスクリプトを書いていきます。
■コード
<?php
$str="?#$%&!@Helloworld!?%&%&%&";
$str = preg_replace( '/[^a-z0-9]/i', '', $str);
echo($str);
?>
正規表現で英数字を一致させずに、それ以外の文字を削除するには、先ほど同じようにstr変数に文字列を格納し、strという変数に対して、preg_replace()を使用します。今回は括弧内の第1の引数では、英数字を一致させずに行いますので、「aからz」、「0から9」までの英数字を「/ (スラッシュ) 」で囲い指定します。指定する際は最後に「i」を記述し、大文字と小文字を区別しないようにします。
次に第2の引数、第3の引数は、最初のスクリプトと同じです。これで、正規表現で英数字を一致させずに、それ以外の文字を削除することができます。
■実行
では、このスクリプトを「hello.php」という名前で保存し、実行させてみます。
実行してみると、正規表現で英数字を一致させずに、それ以外の文字を削除することができました。
コメント