0

私は、あなたが遭遇する最悪の HTML 製品説明を移行する任務を負っています。表と段落の混合で構成されています。大部分は 100% 有効な HTML ではなく、MS Word のおかげで Microsoft タグがたくさんあります。インラインスタイルのタグが散らばっていて、そのほとんどは、これまでに見たことのない最も気の利いた CSS ルールのセットに依存しています。

本質的に、私は、使用できるのはテキストの段落だけであることに気づきました。<p>段落でタグが使用されていない場合や、タイトルや単語に独自のタグが付いている場合があるため、タグを取得することはできません<p>

だから私の質問は、HTMLタグ間でx文字より長いテキストを一致させることができますか?

理想的には、それも無視<br/>し、<br>

ここに私が扱っているhtmlの例へのリンクがあります

ページ全体ではなく、処理中の説明のみであることに注意してください。

4

2 に答える 2

0

サイトを少しスキャンすると、説明の多くが100文字に満たないようです。マルチパスアプローチを試すことができます。最初の反復では、''に続く最初のテーブルからすべてのコンテンツをキャプチャしますdiv id="tab1"。その出発点から、必要な部分を抽出するよりも、不要な部分を特定して削除する方が簡単な場合があります。

于 2012-04-08T04:35:43.540 に答える
0

1この正規表現のグループはn+、タグ間の文字と一致します(n =100この例では):

<[^>]+>([^<]{100,})<[^>]+>

ノート:

  • OPのHTMLがずさんなため、一致する終了タグ( )と意図的に一致していません-タグはタグです<([^>]+)>([^<]{100,})<\1>
  • (?<=<[^>]+>)一致の長さが任意であるため、後読み()の使用を避けました。これにより、バックトラックの問題が発生する可能性があります(Javaなどの一部の言語はそれをサポートしていません)。
于 2012-04-08T04:23:26.240 に答える