- ベストアンサー
PHP 正規表現改行したい
preg_match でHTMLタグを解析するために正規表現を組んでますが、正規表現部分が長すぎてソースがわかりづらいので機能に影響すること無く改行して見やすくする方法はありますか? もしくはHTMLのパースならこうした方がいいよ的アドバイスでも
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
x修飾子を使うと、全ての空白文字が無視されます。 $rexp = <<<EOS / foo| bar| baz /x EOS; $str = "foo is bar and baz."; $out = preg_replace($rexp, "@", $str); var_dump($out); >もしくはHTMLのパースならこうした方がいいよ的アドバイスでも よほど簡単なケース以外では、専用のライブラリを使ってください。 http://jp2.php.net/manual/ja/refs.xml.php
その他の回答 (2)
- AsarKingChang
- ベストアンサー率46% (3467/7474)
aaaaaaaaaa("bbbbbbbbbbbbbbccccccccccccc"); これが長いとしたら、第一段階は aaaaaaaaaa( "bbbbbbbbbbbbbbccccccccccccc" ); こんなかんじだとして、それでも長いなら、 aaaaaaaaaa( "bbbbbbbbbbbbbb". ←ドットを忘れず! "ccccccccccccc" ); と文字列結合を使ってみるのも手ではないですか?
お礼
ありがとうございます。
- ballville
- ベストアンサー率47% (233/487)
正規表現の中に改行を入れたり注釈をいれたりというのは原理上できないと思います。 そもそもHTMLを正規表現で完全に解析できるかどうかとなると、タグを抜くだけで結構大変そうです。 https://www.mk-mode.com/octopress/2013/02/13/regexp-html-tag/ イレギュラーなものを解析しようとすると https://code.i-harness.com/ja/q/ab2ee みたいな議論の末にギブアップするかも。 ですので、車輪の再発明みたいなことはやめて、PHPにお任せしたほうがいいような気がします。 http://blog.katty.in/1400
お礼
ありがとうございま。
お礼
ありがとうございます。 x修飾子やってみます。