.NET 製品のドキュメントを作成するための社内ツールを開発しています。
その機能の一部として、通常の段落を<para>
タグでラップする必要があります。
<cell>
このコンテキストでは、「通常の段落」とは、おそらくいくつかのインライン XML のようなタグを含む 1 行のテキストであることを意味しますが、や などの他のブロック タグ内にはありません<description>
。
ソースファイルの例:
Description paragraph #1.
Description paragraph #2.
<code>
Method1();
Method2();
</code>
<list type="number">
<item>
<description>
If you need to do something, use the <see cref="P:foo1" /> method.
</description>
</item>
<item>
<description> The <see cref="P:foo2" /> method does this.
The <see cref="P:foo3" /> method does that.</description>
</item>
</list>
<section>
<title>Section title</title>
<content>
Section paragraph #1.
Section paragraph #2.
</content>
</section>
これは次のように変換する必要があります。
<para>Description paragraph #1.</para>
<para>Description paragraph #2.</para>
<code>
Method1();
Method2();
</code>
<list type="number">
<item>
<description>
If you need to do something, use the <see cref="P:foo1" /> method.
</description>
</item>
<item>
<description> The <see cref="P:foo2" /> method does this.
The <see cref="P:foo3" /> method does that.</description>
</item>
</list>
<section>
<title>Section title</title>
<content>
<para>Section paragraph #1.</para>
<para>Section paragraph #2.</para>
</content>
</section>
正式には、タスクは次のように聞こえます: テキストのすべての行を .. で囲みますが、他のタグの限られたリスト内にない場合だけではありません。CR/LF、タブ、スペース文字などの空白は、タグ内の以降のすべての段落の前後に使用できます。
明らかに、そのために正規表現を使用する必要がありますが、この場合に機能するものを構築することはできませんでした. アイデアやヒントはありますか?