タグ内のテキストとその終了タグをHTMLファイルで一致させたい場合、コマンドgrepでどの正規表現を使用する必要がありますか?<div class="Message">
</div>
41153 次
3 に答える
13
使用する1つの方法は次のGNU grep
とおりです。
grep -oP '(?<=<div class="Message"> ).*?(?= </div>)' file
タグが複数行にまたがる場合は、次を試してください。
< file tr -d '\n' | grep -oP '(?<=<div class="Message"> ).*?(?= </div>)'
于 2012-11-26T14:32:11.477 に答える
4
これを行うには、正規表現を指定します。
grep -E "^<div class=\"Message\">.*</div>$" input_files
これは、同じ行にあるエンクロージャーのみを印刷するわけではありません。タグが複数行にまたがっている場合は、次のことを試すことができます。
tr '\n' ' ' < input_file | grep -E "^<div class=\"Message\">.*</div>$"
于 2012-11-26T14:15:56.497 に答える
3
grepだけでは確実に実行できません。HTMLパーサーを使用してHTMLを解析する必要があります。
HTMLコードに次のようなものがある場合はどうなりますか。
<!--
<div class="Message">blah blah</div>
-->
コメントアウトされたコードに誤ったヒットが発生します。正規表現のみのオプションで失敗する他の例を次に示します。
XML::Grep
ここで説明するように、Perlモジュールからxmlgrepを使用することを検討してください。grepを使用してhtmlファイルのタイトルを抽出する
于 2012-11-26T15:55:24.657 に答える