質問: '!href=".+"!'; //この正規表現 preg_match_all($regex, $text, $match); var_dump($match); ``` 正規表現を使用して、HTMLタグの中に含まれる href="" 部分のみを取得しようとしています。 取得してみた結果が以下となります。 ``` array(1) { [0]=> array(10) { [0]=> string(99) "href="http://***.php?id=10290"> string(84) "href="http://***.pdf"" [2]=> string(114) "href="http://***.pdf">** など 別のタグまで取れてしまっています。 どうにも正規表現が苦手で調べても上手く行かず... お時間ある方いらっしゃいましたらご助力頂けますと幸いです。
回答: いちばんシンプルにやるには、`!href=".+?"!`として、`.+`を**最短一致**させましょう。 なお、`href=hoge`や`href='piyo'`、`href = "fuga"`のような書き方もHTMLとして正当なものですので、完全に取り切るにはもう少し広げる必要があるかもしれません。