2017-05-23 22 views
-2

の最後の `Enter`を検出します​​をYYYYに置き換えてください。私は文字列の最後のEnterを検出し、操作を行う必要があると思います。これどうやってするの?C#が、私は、パターン(フォーマット)を以下の文字列をたくさん持っている文字列

+4

私は混乱している:あなたは 'XXXX XX'を交換したい場合は、なぜあなたは最後の改行を探したいです。なぜあなたは 'XXXX XX 'を探してみませんか?これまでに何を試みましたか? –

+0

btw: 'yourText.LastIndexOf( '\ n')'? –

+0

あなたの質問のタイトルが質問内の問題文と異なるため、あなたがしたいことは明確ではありません。 –

答えて

2

私はこのようなことをします。問題の文字列が常に2行目から最後の行にある場合は、文字列を1行に1つの文字列に分割します。次に、いくつの行(配列内の文字列)があるか調べます。関心のあるオブジェクトは、この番号-2です。次に、この文字列をYYYYに置き換えます。

EDIT:

var result = Regex.Split(input, "\r\n|\r|\n"); 
int len = result.Length; 
result[len - 2] = "YYYY"; 
var output = string.Join(Environment.NewLine, result); 
+0

あなたはこれのための例を提示すべきです - それはうまくいくでしょうが、それはより具体的な何かがなければ非常に良い答えではありません、と私は思います。 – MetaColon

0

それだけでパターンだ場合は、ここでの正規表現との例を示します

\b\S{4}\s\S{2}\b 

あなたはこのように、この正規表現を使用することができます。

var regex = new Regex(@"\b\S{4}\s\S{2}\b"); 
var result = regex.Replace(inputString, "YYYY"); 

それはワード境界(例えばリターン)を探し、 4つの空白以外の文字、次に1つの空白文字、2つの空白以外の文字、および単語境界を再度指定します。それはあなたが望むことをするはずです。

しかし、あなたの入力に応じて、この正規表現を使用するために良いアイデアかもしれません:

\b\S{4} \S{2}\b 

だから私は、実際のスペース文字と空白文字を置き換えます。もちろん、あなたのキャラクターの1つが単語の境界としてカウントされても、あなたの入力の例を見なければなりません。ここで

は、それがどのように動作するかの例です:

example

それはかなり通常のC#と同じように動作し、対話型C#、にあります。

EDIT

私はあなたのパターン該当する行をスペースで終わることに気づいたとして、あなたは同様に、このパターンを使用することができます。

\b\S{4} \S{2}\b\n 

おそらくより良い仕事と思われます。しかし、それを"YYYY\n"に置き換える必要があります。

+0

これは単なるパターンです。 – distance

+0

@distance申し訳ありませんが、私は私の答えを編集しました。 – MetaColon

+0

正しく動作しません。最後の入力を 'YYYY'に置き換えます。 – distance

関連する問題