2012-05-01 2 views
0

나는 C# 및 정규식 거의 experince을 가지고,하지만 난이이 논리를 시도해야합니다정규 표현식을 사용하여 C#에서 문자열의 일부를 대체하는 방법?

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

위의 코드는 유래에서 질문에 대한 답변이었다

을 유지하면서 문자열의 일부를 교체 나머지는 그대로 있니? "f"또는 "b"또는 "s"를 찾으면 여러 값을 바꿔야하는 단어 (보닛) 대신 "a"로 바뀝니 까?

예를 들어

입력이 "ahaaadrta ATA" 출력 될거다 "STB는 ahfbsdrts"

+2

string temp = Regex.Replace(input, @"[fbs]", "a");처럼

을 참조하십시오. 혼자서 질문에서 무엇을 하려는지 알기가 어렵습니다. – musefan

+0

도움이된다면 한 가지 예를 추가했습니다. – Iman25

답변

0

나는 짧은 코드에 대한 다른 옵션을 게시 할 수 있습니다. 원하는 입력/출력의 예를 게시하시기 바랍니다 http://forums.asp.net/t/1185961.aspx/1

뭔가

+0

괜찮습니다. 그래도 괜찮 았지만 여전히 아랍어 글자로 작동하지 않습니다. 알아 내기 위해 노력하고 있습니다. – Iman25

+0

콘솔에서는별로 좋지 않지만 텍스트 상자에서는 문제가 없습니다. – Iman25

0

왜 단지하려면 string.replace 여러 호출을 사용하지 않을 경우?

+0

사실 내가 바꿀 필요가있는 편지가 단지 예일 뿐이므로 "ء", "أ", "ול"와 같은 아랍 문자를 "?"로 대체하는 문제를 해결할 수 있습니다. 모든 아랍어 텍스트가 모든 아랍어 텍스트가 영어로 된 oppsite 편지에 변환 될 때까지 계속됩니다. – Iman25

+1

@ Iman25 * * * 문자가 여러 번 반복되는 경우에도 * 모든 * 항목을 바꾸는 경우 최상의 방법은 Regex 구문 분석 대신에 간단한 string.Replace (여러 번, 필요한 경우)를 사용하십시오. –

+0

그러나 단어의 턱에 "Ç"와 같은 몇 가지 조건을 넣어야 할 것입니다. – Iman25

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);        
} 
} 
+0

고마워요.하지만 이건 긴 코드예요. – Iman25

관련 문제