
スキルアップ
2021.01.25
無料で学べるプログラミングの学習サイト!おすすめ22選【2020年1月版】
独学でプログラミングの勉強を始める社会人たちが続々と増えていますが、最もオススメな学習法は「まずは無料の学習サイトでプログラミングに触れてみること」。そこで本記事では、初心者におすすめのプログラミング学習サイトを国内外あ […]
PHP
2019.04.18
PHP では、関数 strpos や preg_match を使用して文字列を検索することができます。
今回は PHP で文字列を検索する方法を紹介します。
尚、本サイトでは XAMPP( ザンプ )という開発環境を使用しています。
XAMPP のインストール方法や起動方法については以下の記事をご参照下さい。
PHP【 開発環境 】XAMPP インストール
PHP【 開発環境 】XAMPP の使い方
最終更新日:2019年4月18日
1.strpos で文字列を検索
2.preg_match で文字列を検索
strpos 関数は、文字列中のある文字列を検索する関数です。
実行すると、指定した文字列が最初に現れる位置が 検索対象文字列の 1 文字目を 0 とする数値で返ります。
strpos 関数は 次のように記述して使用します。
strpos ( 検索対象文字列, 指定文字列 [, 検索開始位置 ] ) ;
第 1 引数には、検索対象となる文字列を指定します。
第 2 引数には、検索する文字列を指定します。
第 3 引数には、検索開始位置を検索対象文字列の 1 文字目を 0 とする数値で指定することができます。
第 3 引数に負の数を指定すると、検索対象文字列の末尾から 数値分戻った位置が検索開始位置となります。
strpos 関数を使用して 文字列を検索してみます。
下記のようなソースファイルを作成して ブラウザからアクセスすると、次のような表示になります。
( ソースファイルの作成方法についてはソースファイルを作成を、サーバの起動方法等についてはサーバを起動を、それぞれご参照下さい。)
<?php $str = "All is well that ends well."; echo strpos($str, "well"); echo "<br><br>"; echo strpos($str, "well", -5); ?>
「 echo 」は、データを出力するために使用する PHP の命令です。
「 strpos($str, “well”) 」では、検索対象文字列の中で 検索文字列の先頭の文字「 w 」が最初に現れる位置( 検索対象文字列の先頭文字 A を 0 とする数値で、スペースもカウントする )の 7 が返ります。
「 strpos($str, “well”, -5) 」では、検索開始位置を負の数値で指定しているので、末尾から 5 文字分遡った「 w 」から末尾までが検索対象となります。
そして、後ろの方にある 検索文字列 well の先頭の文字「 w 」の位置である 22 が返ります。
preg_match 関数は、文字列を正規表現で検索する関数です。
実行すると、指定した正規表現が含まれていた場合は「 1 」、含まれていなかった場合は「 0 」、正常に処理できなかった場合は「 false 」が返ります。
preg_match 関数は 次のように記述して使用します。
preg_match ( 正規表現, 検索対象文字列 [, $array [, オプション [, 検索開始位置 ] ] ] ) ;
第 1 引数には、検索する正規表現のパターンを指定します。
第 2 引数には、検索対象となる文字列を指定します。
第 3 引数には、配列変数を指定することができ、配列変数[0] にはパターン全体に合致した文字列が格納され、配列変数[1] 以降には 1 番目以降の各キャプチャ用サブパターンに合致した文字列がそれぞれ格納されます。
第 4 引数には、次のオプションを指定することができます。
・PREG_OFFSET_CAPTURE:各検索結果と共にオフセット値も返る( 第 3 引数の戻り値である文字列とオフセット値を 1 つの配列として、それが各戻り値分格納された 2 次元配列が返る )
第 5 引数には、検索開始位置を検索対象文字列の 1 文字目を 0 とする数値で指定することができます。
preg_match 関数を使用して文字列を検索し、パターンに合致した文字列が配列変数に格納されるようにしてみます。
下記のようなソースファイルを作成して ブラウザからアクセスすると、次のような表示になります。
( ソースファイルの作成方法についてはソースファイルを作成を、サーバの起動方法等についてはサーバを起動を、それぞれご参照下さい。)
<pre> <?php $str = "0123456789"; preg_match("/(01234)(56789)/", $str, $ary, PREG_OFFSET_CAPTURE); print_r($ary); ?> </pre>
preg_match 関数の第 3 引数に配列変数を指定すると、パターン全体に合致した文字列及び各キャプチャ用サブパターンに合致した文字列が 指定した配列変数に格納されます。
そして 第 4 引数に「 PREG_OFFSET_CAPTURE 」を指定すると、第 3 引数で指定した配列変数は、検索で合致した文字列とそのオフセット値( 先頭文字の位置 )がペアで格納される 2 次元配列となります。
print_r 関数や <pre> ~ </pre> についてはprint_r で出力をご参照下さい。
スキルアップ
2021.01.25
独学でプログラミングの勉強を始める社会人たちが続々と増えていますが、最もオススメな学習法は「まずは無料の学習サイトでプログラミングに触れてみること」。そこで本記事では、初心者におすすめのプログラミング学習サイトを国内外あ […]
スキルアップ
2021.01.25
この記事ではシステムエンジニア(SE)とプログラマ(PG)の違いをわかりやすく解説します。システム開発の流れを説明しながら具体的に携わる仕事内容や必要スキル、年収まで違いを比較していきますので、ぜひ参考にしてください。 […]
スキルアップ
2021.01.22
通勤せず、家で仕事ができたら理想的だと思いせんか?コロナ禍の今、在宅ワークに注目が集まっています。パソコンとインターネット回線があればどこでもできる仕事が増え、完全在宅を前提とした求人も多く目にするようになりました。ここ […]
スキルアップ
2021.01.22
大学生のうちにプログラミングスキルを身につけておくべきか悩んでいる方、エンジニアとして働くことに興味がある方はぜひご覧ください! 大学生でプログラミングを習得するメリット、おすすめのプログラミング言語&学習法、失敗しない […]
スキルアップ
2021.01.22
本記事では、給料やお金をもらいながらでもプログラミングを学べる方法や、未経験からでもエンジニアへの転職が可能な理由について紹介します。プログラミングスキルが未経験者の就職や転職において有利となる理由も解説。これからプログ […]
スキルアップ
2021.01.21
「高卒者のお給料って高いの?低いの?」「大学を中退しても高収入は得られる?」最近は高卒採用に力を入れる企業が続々と増えていますが、こんなふうに考えて最初の一歩が踏み出せない学生さんも多いはず。そこで今回は、学歴・世代・男 […]
INTERNOUS,inc. All rights reserved.