0

私はC#と正規表現の経験がほとんどありませんが、このロジックを試す必要があります。

 string replacedText = Regex.Replace(
     "ssdf bonnets sdf sdf sdf ", 
     @"(?i)^(.+ )?(bonnet)(s?)( .+)?$", 
     "$1hood$3$4"
 );

上記のコードは、stackoverflowの質問に対する答えでした。

残りの部分をそのままにして、弦の一部を交換しますか? 単語(ボンネット)だけを検出する代わりに、複数の値を置き換えたいと思います。たとえば、「f」、「b」、「s」が見つかった場合、「a」に置き換えられますか?

たとえば、入力が「ahfbsdrts stb」の場合、出力は「ahaaadrtaata」になります。

4

3 に答える 3

0

String.Replaceへの複数の呼び出しを使用しないのはなぜですか?

于 2012-05-01T14:08:15.877 に答える
0

これを試して:

using System;
using System.Text.RegularExpressions;

public class Example
{
 public static void Main()
 {
  string input = "ssdf bonnets sdf sdf sdf ";
  string pattern_1 = "f";
  string replacement = "a";
  Regex rgx_1 = new Regex(pattern_1);
  string result = rgx_1.Replace(input, replacement);
  string pattern_2 = "b";
  Regex rgx_2 = new Regex(pattern_2);
  result = rgx_2.Replace(result, replacement);
  string pattern_3 = "s";
  Regex rgx_3 = new Regex(pattern_3);
  result = rgx_3.Replace(result, replacement);
  Console.WriteLine("Original String: {0}", input);
  Console.WriteLine("Replacement String: {0}", result);                             
 }
}
于 2012-05-01T14:10:25.810 に答える
0

短いコードの別のオプションを投稿します。

http://forums.asp.net/t/1185961.aspx/1を参照してください

何かのようなものstring temp = Regex.Replace(input, @"[fbs]", "a");

于 2012-05-01T14:51:33.200 に答える