PHPで英数字以外の文字を削除する

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」という名前で保存し、実行させてみます。

実行してみると、正規表現で英数字を一致させずに、それ以外の文字を削除することができました。

 

コメント

タイトルとURLをコピーしました