必要な文字列セグメントを見つけるために正規表現を使用する必要がありsed
、awk
オプションとして正規表現を選択する必要がありますが、そのためにスイッチが必要になる場合があります。タグ全体を探すことをお勧めします。そうしないと、終了タグと開始タグ(</span>stuff here<p>
)の間にコードが表示される可能性がありますが、これはおそらく望ましくありません。
したがって、正規表現は、最も基本的には次のようになります(テストされていないため、おそらく微調整する必要があります)。
/\<[a-zA-z]\>/ /* Find the opening tag. */
/\<[/a-zA-z]\>/ /* Find the closing tag, note the presence of the "/" inside the square brackets.
*/
必要に応じて、検索するタグのリストを作成できます。具体的には、次のようなものを提供します。
tags="div|p|article|section" /* Your list of tags, pipe-delimited for OR logic */
/\<$tags[:print:]\>/ /* The regex, looking for something like <div[anything]> */
開始タグをRegexingし、ベースタグを変数に格納してから、一致する終了タグを見つけることで、さらに先に進むことができる場合があります。これは、正しく機能するためにもう少し作業が必要になる場合がありますが、より堅牢であり、間違った終了タグで停止するという落とし穴を自然に回避するという利点があります(つまり、で停止</a>
する必要があるときに停止し</p>
ます)。
いくつかの注意事項-これは、いくつかの単一文字タグで少し毛むくじゃらになる可能性があります。十分にインテリジェントに記述しないと、プログラムがやなどを混乱させる可能性がある<a>
ため<article>
、コードがそれを説明するのに十分な堅牢性を備えていることを確認してください。
また、sはさまざまなフォーム入力のほとんどを生成するために使用されることを忘れないでください<input>
。したがって、それらが何であるかを気にする場合は、にtype
遭遇するたびに属性を探すようにしてください<input>
。
最後に、タグに終了タグがあるとは限りません。一部のタグには(<br/>
/ <br>
、<hr/>
/ <hr>
)がなく、HTML仕様では必ずしもそれらが必要では<li>
ありません(次の開始タグが別のまたは、であるか、親の終了タグが続く<p>
限り、終了タグは必要ありません) 。また、取得したHTMLが有効であると想定することもできません。したがって、これらの状況を考慮して、アプリケーションがクラッシュしたり燃えたりしないようにしてください。<li>
<p>