0

次の正規表現を取得しました

var fixedString = Regex.Replace(subject, @"(:[\w]+ [\d]+)$", "", 
                                                        RegexOptions.Multiline);

これは機能しません。を使用すれば機能します\r\nが、すべての種類の改行をサポートしたいと考えています。別の回答が述べているように、(文字列の終わりではなく)行末トークンとしてRegexOptions.Multiline使用できるようにするには、使用する必要があります。$しかし、それは役に立たないようです。

私は何を間違っていますか?

4

1 に答える 1

2

何を達成したいのかわかりませんが、行末の改行文字も置き換えたいと思います。

問題は$、ゼロ幅アサーションです。改行文字とは一致せず、 \nの位置と一致します。

他にもさまざまなことができます。

  1. 後続のすべての改行、つまり後続のすべての空の行も一致する場合は、次のように実行できます。

    var fixedString = Regex.Replace(subject, @"(:[\w]+ [\d]+)[\r\n]+", "");
    
  2. 行の後の改行のみを一致させ、空の行を追跡し続ける場合は、考えられるすべての組み合わせのパターンを作成する必要があります。例:

    var fixedString = Regex.Replace(subject, @"(:[\w]+ [\d]+)\r?\n", "");
    

    \nこれは組み合わせと一致し、\r\n

于 2013-03-10T20:32:27.693 に答える