2016-05-20 7 views
-3
<p[^>]*>([a-zA-Z0-9_\W]*)\:<\/p>.*?(<blockquote[^>]*>).*?<\/blockquote> 

<p> demo demo:</p> <p ><img src="http://demo.com/123.jpg" width="100%"/> <br/> <em>Credit: demo2 demo2 </em></p> <p >here1 here1:</p> <blockquote cite="here1"> <p><em>demo3. demo3 demo3 demo3:</em></p> </blockquote> <p >demo4 demo4:</p> <p ><img src="http://demo.com/1234.jpg" width="100%"/> <br/> <em>demo5 demo 5 demo5</em></p> <p >demo6 demo6:</p> <blockquote cite="demo6"> <p><em>demo7 demo7<br/> 

上記のパターンは機能していません。どこで私は間違いをすることができます。私が上に書いたパターンは、私が文章で欲しいものを選ぶことはできません。ヘルプリクエスト。私は選択できませんRegEx

私は結果を取得したい:

<p >here1 here1:</p> <blockquote cite="here1"> <p><em>demo3. demo3 demo3 demo3:</em></p> </blockquote> 

I added that I will ask for a sample.

+0

画像ではなく*テキスト*サンプルを含めてください。 –

+0

マイケルありがとう。私は画像を追加しました。ご覧ください:http://i.stack.imgur.com/UtQQL.png –

+0

と私はテキストとしてコードを追加します。 –

答えて

1

あなたが本当にここに正規表現を使用する場合、これはあなたのために働く可能性があります

<p[^>]*>((?:(?!<\/p>).)+)<\/p>\s*<blockquote[^>]*>(.*?)<\/blockquote> 

関連する部分が((?:(?!<\/p>).)+)次のとおりです。英語では、「</p>がないことを確認してから、1文字をつかんでこれを繰り返す(次のまで))。このようにして、複数の兄弟<p>(または実際にはネストされた<p> ')が一致することはありません。これは元のパターンで起こっていることです。<p[^>]*>([a-zA-Z0-9_\W]*)\:<\/p>は、このコンテキストでは間違って一致します:<p>one paragraph</p><p>second paragraph</p><p><blockquote>の間に空白(\s*.*?ではない)だけを指定したので、と一致するのは<p>に一致します。

demo

+0

スーパー。非常に汗をかいてくれてありがとう。 –

関連する問題