0

何百ものSQLInsertステートメントを含むファイルがあります。HTML段落タグで始まるステートメントのみを識別したいのです<p>が、終了段落タグがありません</p>

私はこれらの行を試しています

<p>[^\n]*(?!</p>) <-- a <p> followed by any number of characters until \n and then </p>

これは動作しません。以下はサンプルデータです

INSERT INTO `help` VALUES 
(1,1,'<p>Radiotherapy uses a beam of high&#45;energy rays (or particles) lymph nodes.</p>'),
(2,1,'<p>EBRT delivers radiation from a machine outside the body. '),
(3,1,'<p>Following lumpectomy radiotherapy <ul><li>Heading</li></ul></p>'),

理想的には</p>、それらが存在しない場所、たとえば挿入ステートメント#2に追加します。

4

2 に答える 2

1

</p>の後に常に引用符が続くことが確実な場合は'、Perl で次のように動作します (notepad++ を使用しないでください)。

/<p> [^\n]* (?<! <\/p> )  (?=') /gx

( /x は、わかりやすくするためにスペースを許可します)。これは、引用符の先読みに固定された否定的な後読みを行っています。

于 2012-12-24T09:36:44.100 に答える