-3

特定のタグ/テキストの前のコンテンツを削除するにはどうすればよいですか。たとえば、このコメントの前のすべてを削除したい:

    <!-- article begins -->

その後、すべてを削除したい

    <!-- article ends -->
4

4 に答える 4

1

C# (正規表現は必要ありません)。

string start = "<!-- article begins -->";
string end = "<!-- article ends -->";

var article = text.Split(new string[] { start, end }, 
                         StringSplitOptions.RemoveEmptyEntries)[1];
于 2012-09-09T17:44:46.107 に答える
1

Python の例 (どの言語が必要かはわかりませんでした):

import re
reobj = re.compile(".*?<!-- article begins -->(.*)<!-- article ends -->.*", re.DOTALL)
result = reobj.sub(r"\1", subject)

これにより、タグも削除されます。article begins/endsまた、 にはペアが1 つしかないことを前提としていsubjectます。

于 2012-09-09T17:32:55.587 に答える
0

sed:

sed -n '/<!-- article begins -->/,/<!-- article ends -->/p' yourfile

一致するタグのペアが 1 つしかないとは限りません。

于 2012-09-09T17:37:40.683 に答える
0

正規表現エンジンによって異なります。ほとんどの場合、「.」と尋ねられるモードがあります。改行を含むすべての文字に一致します。次に、必要なものをキャプチャします。

.*article begins.....(.*).....article ends.*

コメント マーカーにはドットを使用しています。これらの文字の一部は、正規表現エンジンによっては特殊なためです。

代わりに awk を見るかもしれませんが、これを行うためのより良い方法があります。

awk '/article begins/,/article ends/ { print }' filename

アクションで正規表現の範囲を指定します。

/start pattern/,/end pattern/ { action to do }
于 2012-09-09T17:35:10.980 に答える