0

私はこのような文字列を持っています

<div tagname="chapter_title" class="CHAP_TTL" aidpstyle="CHAP_TTL">testt</div>
<div tagname="section" id="sec01">
<div tagname="title" class="H1" aidpstyle="H1" id="sec01">
     INTRODUCTION<!--title-->
</div>
<div tagname="para" class="CHAP_BM_FIRST" aidpstyle="CHAP_BM_FIRST">test3
<div tagname="emph" class="ITALIC" aidcstyle="ITALIC">buildings</div>   

tagname 属性に単語 (emph,section) を含まない DIV を見つけようとしています

以下のパターンを使用しましたが、正しい出力が表示されません

 preg_match_all('/<div tagname="(?!emph)(?!section)(?!footnote)
      (?!note).*"/i',$new_updated_html,$divstarttag);

テイカーはいますか??

4

2 に答える 2

3

私はあなたのコードをチェックし、次の2行を使用してすべての新しい行とスペースを置き換える必要があることを除いて、正常に動作します-

$string = preg_replace('/\s\s+/', ' ', $subject);

$data = preg_replace('/\r\n/', "", $string);
于 2012-08-08T07:39:54.933 に答える
1

PHP Simple DOM Parser (またはその他の PHP HTML 解析フレームワーク)をご覧ください。HTML に正規表現を使用することは避けるべきです。divDOM パーサーを使用すると、ドキュメント内のセクションを繰り返し処理し、関連情報にアクセスできる必要があります。

于 2012-08-08T07:30:27.043 に答える