-3

left に入らない部分文字列の出現を置き換えたい。お気に入り、

  1. 入力:「コンピューターパーツ」

    部分文字列 ="t" を検索 部分文字列 ="success" を置換

    出力: CompusuccesserParsuccess

  2. 入力:「トパーズ」

    部分文字列 ="t" を検索 部分文字列 ="success" を置換

    出力: topaz //t は文字列 'topaz' の先頭 (左) にあるため、置き換えてはなりません。

  3. 入力:「質問」

    部分文字列 ="t" を検索 部分文字列 ="success" を置換

    Output : quessuccessions //今回は文字列 'questions' の途中にある 't' に置き換えます

この目的のための C# での正規表現パターンと、これを実現するためのコード サンプルを見つけるのを手伝ってください。

4

4 に答える 4

0

今回は宿題の単位がもっと欲しい!

string readText = File.ReadAllText(path);
string[] lines = readText.Split(Environment.NewLine);
string output;

foreach(string line in lines)
{
    int pos = text.IndexOf("t");
    if(pos>0)
       text = text.Replace("t", "Success");

    output += text + Environment.NewLine;
}

File.AppendAllText(newPath, output);
于 2013-09-19T14:05:49.147 に答える
0

これはあなたが必要としているものだと思います。

string[] inputstrings = { "ComputerPart", "topaz", "questions" };//An array of input strings to manipulate.
string output = "";
Regex rgx = new Regex("t");//Regex pattern to match occurence of 't'.
foreach (string inputstring in inputstrings)//Iterate through each string in collection.
{
  output = rgx.Replace(inputstring, "success", int.MaxValue, 1);//Replace each occurence of 't' excluding those occurring at position [0] in inputstring.
  MessageBox.Show(output);//Show output string.
}

私がやったことは次のとおりです。

  • コレクション内の各文字列をループします。
  • 「t」が出現する正規表現に対して各文字列を照合します。
  • 検索は、各文字列から派生した文字配列の位置 1 から開始されます。そのため、文字列の先頭にある「t」は自動的に残されます。

イデオンのサンプル。

お役に立てば幸いです。

于 2013-09-19T14:48:00.250 に答える