1

以下のような式を使用してプレーンテキストを解析するための高速ライブラリ/クラスを探しています。

テキストは次のとおりです。<b>Name:</b>John<br><i>Age</i>32<br>

パターンは次のとおりです。{*}Name:</b>{%}<br>{*}Age</i>{%}<br>

そしてそれは私に2つの値を見つけるでしょう:John32。目的は、強力なツールを使用せずに単純なHTMLWebページを解析することです。内部で文字列操作や正規表現を使用するべきではありませんが、おそらく文字ごとの解析を行います。

4

3 に答える 3

0

正規表現の置き換えが機能します。「John%32」のように両方の値を一緒に返すように取得してから、応答を分割して2つの別々の値を取得します。

于 2010-01-28T20:22:55.933 に答える
0

ここで手動で実装された文字ごとの解析には、実際には利点はありません。このような問題は、これらのタイプの問題に対してほぼ解決されているためです。

  • 非常に正規化されたデータセットを処理している場合(つまり、上記のテンプレートはすべての状況でまったく同じようにフォーマットされており、終了タグが欠落したり、HTMLが奇数の場所に挿入されたりする可能性はありません)、正規表現はこの種のデータを解析するための完全に適切なツール。
  • HTMLが完全であることが保証されない場合、最も簡単な解決策は、ツールを使用してHTML構造をDOMにロードし、ドキュメントツリーで適切な要素を見つけることです。

文字ごとのアプローチを開発することは、おそらく上記の2つのオプションのいずれかを手動で実装することと同等になりますが、これは簡単なことではありません。

于 2010-01-28T20:23:19.627 に答える
0

必要なHTMLコンテンツを指定するようにユーザーに求めているように見えるので、ここで正規表現を使用しても問題ないでしょう(なぜそれらに嫌悪感を抱くのですか?)。これはHTML解析ではなく、正規表現が設計されている単純なテキストマッチングです。

次に例を示します。

$match =~ s/{\*}/.*?/g;
$match =~ s/{%}/(.*?)/g;
$html =~ /$match/;

これにより、キャプチャグループに必要なものが残ります。

于 2010-01-28T20:28:34.810 に答える