2011-02-09 4 views
0

イムは、この正規表現パターンでの作業:regexパターンの一部をオプションにするには?

|img_class.*?<img src="(.*?)"(.*?)<\/td>|ms 

しかし、私はimg_class tdは時々空なので、それは私のパターンが失敗したときに、それはそう<img src="(.*?)"は、(だけでなく、SRC部分)オプションであるようにしたいです。

私は|img_class.*?(<img src="(.*?)")?(.*?)<\/td>|msを試しましたが、決して一致しません。

(私はxpathやもっと良いものを使うことができると知っていますが、かなり大きなクラスを使っていますが、今はすべてをコード化したくありません)。

+2

マッチしたいテキストのサンプルを追加できますか?幅とオプション部分なし。あなたの更新された正規表現が正しいようです。 –

+0

注意として、HTMLを解析するための正規表現よりも優れています。実際のSGML/HTMLパーサーがあります。 –

答えて

1
|img_class.*?(?:<img src="(.*?)")?(.*?)<\/td>|ms 
+0

私の知る限りでは、最初のグループを非キャプチャにしただけで、正規表現全体が決して一致しない場合、問題を解決するのに役立ちます。 –

+0

動作しませんでした。と一致するようにしていますが、イメージが存在しない場合、正規表現はイメージが見つかるまで続けられます。 – phollz

関連する問題