• ベストアンサー

PHP 正規表現改行したい

preg_match でHTMLタグを解析するために正規表現を組んでますが、正規表現部分が長すぎてソースがわかりづらいので機能に影響すること無く改行して見やすくする方法はありますか? もしくはHTMLのパースならこうした方がいいよ的アドバイスでも

質問者が選んだベストアンサー

  • ベストアンサー
  • notnot
  • ベストアンサー率47% (4900/10361)
回答No.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

muuming2001
質問者

お礼

ありがとうございます。 x修飾子やってみます。

その他の回答 (2)

回答No.2

aaaaaaaaaa("bbbbbbbbbbbbbbccccccccccccc"); これが長いとしたら、第一段階は aaaaaaaaaa( "bbbbbbbbbbbbbbccccccccccccc" ); こんなかんじだとして、それでも長いなら、 aaaaaaaaaa( "bbbbbbbbbbbbbb".   ←ドットを忘れず! "ccccccccccccc" ); と文字列結合を使ってみるのも手ではないですか?

muuming2001
質問者

お礼

ありがとうございます。

  • ballville
  • ベストアンサー率47% (233/487)
回答No.1

正規表現の中に改行を入れたり注釈をいれたりというのは原理上できないと思います。 そもそも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

muuming2001
質問者

お礼

ありがとうございま。

関連するQ&A

専門家に質問してみよう