2016-01-21 59 views
0
string message = "Your purchase of $ 100.00 is awaiting for confirmation. Please use PIN 8967 to complete the transaction. Reference Number :1237689"; 

string output = Regex.Replace(message, @"[\d-]", "*"); 

Console.WriteLine("Message : " + message); 

Console.WriteLine("Output : " + output); 

Console.ReadLine(); 

我想只替換消息的PIN。但上面的消息從*字符替換所有數值。C#替換部分消息

+2

使用表達式'(PIN)\ d +'和替換用1'$ ****'。 – Tushar

回答

3
string message = "Your purchase of $ 100.00 is awaiting for confirmation. Please use PIN 8967 to complete the transaction. Reference Number :1237689"; 
string output = Regex.Replace(message, @"(?<=PIN\s*\d*)\d", "*"); 

string message = "Your purchase of $ 100.00 is awaiting for confirmation. Please use PIN 8967 to complete the transaction. Reference Number :1237689"; 
string output = Regex.Replace(message, @"(?<=PIN\s*)\d+", m => new string('*', m.Length)); 
+0

嗨Ulugbek,感謝您的指導。它很好用。 –

+0

@DreamCoder如果解決了您的問題,請考慮upvoting並將答案標記爲已接受。謝謝! – Rob

+0

您好我在上面的for循環中替換。所有的消息都是不同的格式。如果像下面這樣的消息不能替換*字符。字符串消息=「您的PIN碼已被重置,新的PIN碼347689登錄。」;所以我需要針對這兩種情況的解決方案。 –