1

開始タグに終了タグを追加してクリーンアップしようとしている SGML がいくつかあります。現在、ドキュメントは次のような構造になっています。

<CAT>
<NAME>Daniel
<COLOR>White
<DESC>Daniel is a white cat <p>He was born in July</p><br />He's super cute.<p><br />He does not have any siblings.
<COUNTRY>USA
</CAT>

これまでのところ、この正規表現を使用して、開始タグを照合し、コンテンツをグループとしてキャプチャでき <NAME>([^\\<]+)[^<]ます。しかし、そうすると、パターンマッチングは最初の直前で停止します<p></p><br />

<DESC>([^\\<]+)[^<]<p>

パターンの最後として使用<している理由は、他のすべての開いているノードには、一致を停止する html 要素がないためです。

、、およびノー​​ドの前で終わる<DESC>ノードに一致する正規表現を作成するにはどうすればよいですか? <p></p><br /><COUNTRY>

4

1 に答える 1

2

これはどう:

<DESC>((?:</?p>|<br />|[^\\<])+)

<これにより、これら 3 つのタグが一致し、3 つのいずれにも属さない次のタグで停止します。

ところで、バックスラッシュを有効な文字として許可しないのはなぜですか?

于 2013-02-06T20:47:52.357 に答える