1

こんばんは

私は正規表現が初めてで、すべてのリスト項目を段落に置き換えたゴミPDF「html」を変換する時間を節約しようとしています。Dreamweaver CS6 または notepad++ を使用して、リスト項目であるはずの p タグの周りに手動で ul タグを追加すると、ul タグ内のすべての段落をリスト項目で検索/置換できるのではないかと思います。

私は次のようなことをして時間を節約しています:

Find: <p>Activity ([^>]*)</p>
Replace: <h2>Activity $1</h2>

Find: <p class="s23">([^>]*)</p>
Replace: <h3>$1</h3>

しかし、正規表現のどこかでループできるかどうかはわかりません。

Find: *loop within ul* <p>([^>]*)</p>
Replace: <li>$1</li>
4

1 に答える 1

2

正規表現が何であるかを見ると、正規表現だけではループのようなフロー制御を行うことができないことがわかります。ウィキペディアの引用:

コンピューティングでは、正規表現は、特定の文字、単語、文字のパターンなどのテキストの文字列を「照合」(指定および認識)するための簡潔で柔軟な手段を提供します。

強調鉱山–簡単に言えば、正規表現は文字列を見つけるための素晴らしい方法です。一致するかどうかのどちらかです。これは、制御可能なフローを備えた一連の論理処理命令ではありません。つまり、プログラムではありません。

ただし、「すべて置換」(おそらく指定されたもの)と複数行の一致をサポートするエディターを使用し、正規表現エンジンでグループをキャプチャする限り、正規表現を単独で使用した後に現在の状態を実現する方法は他にもあります。探している

(<ul>)(<p>.*</p>)?<p>([^<])*</p>(<p>.*</p>)?(</ul>)

いずれかの0を含む、任意の数の前後のブロックを許可することにより、ブロック内の任意 のブロックに一致します。後方参照構文がコード例からのものであると仮定すると、置換文字列は次のようになります。<p></p><ul></ul><p></p>$x

$1$2<li>$3</li>$4$5

–すべてのオカレンスを置き換えると、設定する必要があります。

于 2012-08-03T15:53:22.607 に答える