C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[2]: 置換の結果


(過去ログ 72 を表示中)

[トピック内 3 記事 (1 - 3 表示)]  << 0 >>

■41966 / inTopicNo.1)  置換の結果
  
□投稿者/ ド素党 (1回)-(2009/10/05(Mon) 20:04:47)

分類:[C#] 

いつも参考にさせて頂いています。
下記の基本的な文字列の置換えで
bcがXYZに何箇所置き換わったか数はわかるのでしょうか?
Excelのカウントみたいなキノウハないでしょうか?
お願いいたします。

string abc = "abcabcabcabcabcabc";
abc = abc.Replace("bc", "XYZ");
Console.WriteLine(abc);
引用返信 編集キー/
■41967 / inTopicNo.2)  Re[1]: 置換の結果
□投稿者/ 魔界の仮面弁士 (1338回)-(2009/10/05(Mon) 20:21:04)
2009/10/05(Mon) 21:04:22 編集(投稿者)
No41966 (ド素党 さん) に返信
> bcがXYZに何箇所置き換わったか数はわかるのでしょうか?
> string abc = "abcabcabcabcabcabc";
>              abc = abc.Replace("bc", "XYZ");
>              Console.WriteLine(abc);


string source = "abcabcabcabcabcabc";
string oldText = "bc";
string newText = "XYZ";

// 案1
string text1 = source.Replace(oldText, newText);
int count1 = source.Replace(oldText, oldText + "\0").Length - source.Length;
Console.WriteLine("{0}個置換しました:[{1}]", count1, text1);

// 案2
// Regex reg = new Regex(oldText);
// string text2 = reg.Replace(source, newText);
Regex reg = new Regex(Regex.Escape(oldText));
string text2 = reg.Replace(source, newText.Replace("$", "$$"));
int count2 = reg.Matches(source).Count;
Console.WriteLine("{0}個置換しました:[{1}]", count2, text2);

引用返信 編集キー/
■41969 / inTopicNo.3)  Re[2]: 置換の結果
□投稿者/ ド素党 (2回)-(2009/10/05(Mon) 20:37:02)
そういうことですね!
ありがとうございました。

もっと頭使います。
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -