テクノロジー

PHPの正規表現で文字列抜き出し

kyo asahina🦄's icon'
  • kyo asahina🦄
  • 2020/04/19 08:57

PHPのpreg_match()関数を使用することで、任意の文字列の抜き出しができます。
例えば、

『ハヤシ』もあるでよ

みたいな文字があったとします。
ここでハヤシだけ欲しい、なんて場合どうするか?
こんな方法があります。

<?php
$str = "『ハヤシ』もあるでよ";
if (preg_match('/『(.+)』.*/', $str, $matches)) {
echo $matches[1];
}

これを実行します。

ハヤシ

という結果になるのがわかります。

preg_match()の使い方は、第一引数に検索パターンを入れます。そして第二引数は検索対象文字列。第三引数にはパターンにマッチした情報が入ります。
ここでなぜ$matches[1]という表現をするのか?
試しに以下のプログラムを実行してみます。

<?php
$str = "『ハヤシ』もあるでよ";
if (preg_match('/『(.+)』.*/', $str, $matches)) {
print_r($matches);
}

そうすると結果はこうなります。

Array
(
[0] => 『ハヤシ』もあるでよ
[1] => ハヤシ
)

気付いたかと思いますが、0番目にはマッチした文字全体が入っています。
そして1番目には、今回欲しかった情報である、ハヤシが入っています。
さてどうしてハヤシだけ抜き出せたのか?
それは、

/『(.+)』.*/

という書き方で『』の中に丸カッコ()でくくった箇所(.+)があります。
これはサブパターンというもので、複数設定でき、今回は1つだけサブパターンがあるので$matches[1]という書式でハヤシを取得することができた、というわけです。


----- 著 書 の 紹 介 ------

◆kyo asahinaの著書◆

PythonとQt5ではじめるGUIプログラミング for Windows (NKYS書房) Kindle版

テンプレートエンジンTwigを覚える本 Kindle版

Smarty 3を覚える本 Kindle版

公開日:2020/04/19
獲得ALIS:0.00
kyo asahina🦄's icon'
  • kyo asahina🦄
  • @kyoasahina
プログラマー(Web系)です。ツイッター:https://twitter.com/kyoplusplus Kindleで「Twigを覚える本」出版してます。http://amzn.to/2gOM9yC

投稿者の人気記事
コメントする
コメントする
こちらもおすすめ!
Eye catch
クリプト

Bitcoin史 〜0.00076ドルから6万ドルへの歩み〜

Like token Tip token
947.13 ALIS
Eye catch
テクノロジー

なぜ、素人エンジニアの私が60日間でブロックチェーンゲームを制作できたのか、について語ってみた

Like token Tip token
270.93 ALIS
Eye catch
クリプト

NFT解体新書・デジタルデータをNFTで販売するときのすべて【実証実験・共有レポート】

Like token Tip token
121.79 ALIS
Eye catch
テクノロジー

彼女でも分かるように解説:ディープフェイク

Like token Tip token
32.10 ALIS
Eye catch
他カテゴリ

機械学習を体験してみよう!(難易度低)

Like token Tip token
124.82 ALIS
Eye catch
ゲーム

ドラクエで学ぶオーバフロー

Like token Tip token
30.10 ALIS
Eye catch
テクノロジー

オープンソースプロジェクトに参加して自己肯定感を高める

Like token Tip token
85.05 ALIS
Eye catch
クリプト

ジョークコインとして出発したDogecoin(ドージコイン)の誕生から現在まで。注目される非証券性🐶

Like token Tip token
38.31 ALIS
Eye catch
クリプト

約2年間ブロックチェ-ンゲームをして

Like token Tip token
61.20 ALIS
Eye catch
クリプト

Bitcoinの価値の源泉は、PoWによる電気代ではなくて"競争原理"だった。

Like token Tip token
159.32 ALIS
Eye catch
テクノロジー

iOS15 配信開始!!

Like token Tip token
7.20 ALIS
Eye catch
他カテゴリ

ALISのシステム概観

Like token Tip token
5.00 ALIS