✔️文字列の検索方法は?
✔️それぞれの関数の使い分け
今回は文字列の検索が出来る関数についてご説明します!
関数の基礎に関しては下記の記事を参考にして下さい!
独学がつらくなった方は下記をご覧ください!
>>【初心者必見!】無料体験ができるプログラミングスクールをご紹介!
strpos関数:特定の文字列の位置を返す
strops関数は何文字目に検索対象の文字が存在するかを返します。検索した文字列が見つからなかった場合はFALSEを返します。
書き方は下記の通りです。
strpos(検索対象の文字列, 検索する文字列 [, 開始位置] )
実際の例を確認してみましょう!
<?php
echo strpos('sarapuro_PHP', '_');
?>
結果は下記の通りです。
実際の開発では検索文字列の有無を条件分岐する場合が多いので、そちらも記載します。
<?php
$str='sarapuro_PHP';
if(strpos($str, '_')!==false)
{
echo '文字列が存在します';
}else{
echo '文字列が存在しません';
}
?>
結果は下記の通りです。
strstr関数:検索文字列以降を返す
strstr関数は検索対象の文字列以降の文字列を返します。検索した文字列が見つからなかった場合はFALSEを返します。
書き方は下記の通りです。
strstr(検索対象の文字列, 検索する文字列)
実際の例を確認してみましょう!
<?php
echo strstr('sarapuro_PHP', '_');
?>
結果は下記の通りです。
preg_match関数:正規表現による検索
preg_match関数は対象の文字列から正規表現パターンの文字列があるかないかを検索する関数です。戻り値はマッチした文字列がある場合は「1」、ない場合は「0」を返します。
書き方は下記の通りです。
preg_match(/正規表現によるパターン/ , 検索対象の文字列 [,マッチした文字列の配列])
1つ目の引数には、正規表現による文字列パターンを記述します。正規表現はスラッシュ(/)で囲むことが必須です。2つ目の引数は検索対象の文字列を記述します。
preg_matchの返り値として検索結果を返してくれます。
正規表現と返り値に関しては下記の記事を参考にして下さい。
それでは実際のコードを確認してみましょう。
<?php
$text='サラプロは週5勤務中';
if(preg_match('/サラプロは週[0-9]/',$text)){
echo '文字列が存在します';
}else{
echo '文字列が存在しません';
}
?>
結果は下記の通りです。
$textに、「サラプロは週[数字]」という文字パターンが含まれる為、文字列が存在しますと記載されます。
パターンで検索できるので、電話番号やメアドなどのパターンが決まった文字列の検索に重宝します!
実践として郵便番号の確認を例に、実際のコードを見てみましょう!
<?php
$postalcode1='123-4567';
$postalcode2='4567-8910';
$result1=preg_match('/\A([0-9]{3})-([0-9]{4})\z/',$postalcode1);
$result2=preg_match('/\A([0-9]{3})-([0-9]{4})\z/',$postalcode2);
if($result1){
echo 'マッチしています';
}else{
echo 'マッチしていません';
}
echo'<br>';
if($result2){
echo 'マッチしています';
}else{
echo 'マッチしていません';
}
?>
結果は下記の通りです。
正規表現により、指定の数字が郵便番号の表記方法を一致するか確認するコードです。
正規表現の「\A([0-9]{3})-([0-9]{4})\z」についてです。
冒頭の「\A」と末尾の「\z」はそれぞれ文字列の始まりと終わりを示しています。これが無いと、郵便番号の前後に文字列が配置されている場合でもマッチしてしまいます。
次に[0-9]は0~9の中のどれか1文字を、{3}は繰り返しの回数を示します。[0-9]{3}により、0~9の中のどれか1文字を3回繰り返すことになります。
[0-9]{4}は先程と同様に0~9の中のどれか1文字を4回繰り返すことになります。
これらの表記にマッチしているのは「$postalcode1」である為、if文の条件分岐の結果は上記の通りになります。
if文の基本に関しては、下記の記事を参考にして下さい。
独学がツラくなった方へ
- 将来のキャリアに不安を感じるが、何から始めていいかわからない。。
- 仕事が忙しいため両立できるか不安。
- 効率よくスキルを身につけたい
- 完全未経験からエンジニアを目指したい方へ!カウンセリング受講者の97%以上が未経験者で安心です。
- 「就業両立コース」で、仕事と両立して効率よくスキルを身につけることができます!
- キャリアイメージ、スキル習得など、無料カウンセリングで、今悩んでいることを気軽にプロに相談できます
まとめ
✅strpos関数:特定の文字列の位置を返す
✅strstr関数:検索文字列以降を返す
✅preg_match関数:正規表現による検索
今回は以上になります。
文字列検索は様々な場面で用いられます。今回で是非マスターしましょう!
PHPにおける文字列操作に関しては下記の記事を参考にして下さい!