2011-07-26 21 views
2

文字列のSSNをマスクする方法はありますか?正規表現を使用して文字列のSSNをマスクする方法

私は私が私がキャプチャするために欠けていると思う以下のコード

Regex ssnRegex = new Regex("(?:\bSSN:\b)(?:[0-9]{3})(?:[0-9]{2})(?:[0-9]{4})"); 
string formattedSSN = ssnRegex.Replace(t1, "SSN:-XXX-XX-XXXX"); 

を試してみました次のシナリオ

string str1 = "asdasfasdfasdf sfhagfdad SSN:123456789"; 

に私に必要な出力"asdasfasdfasdf sfhagfdad SSN:*********"

を持っています "SSNを:" あなたでした上記の出力を得る方法を教えてください

+1

入力の開始位置と終了位置を知っているので、ここでstring.replaceを使用することをお勧めします。 SSNを見つける:文字列に残りの文字を*で置き換えます。 – Asdfg

答えて

2

String.Replaceを使用しないのはなぜですか?

string str1 = "asdasfasdfasdf sfhagfdad SSN:123456789"; 

//Get starting position 
int position = str1.IndexOf("SSN:") + 4; 

//Extract social 
string ssn = str1.Substring(position, 9); 

//Update string 
str1 = str1.Replace(ssn, "XXX-XX-XXXX"); 
1
Regex.Replace("asdasfasdfasdf sfhagfdad SSN:123456789", @"\d{3}[-]?\d{2}[-]?\d{4}", "***") 
output: "asdasfasdfasdf sfhagfdad SSN:***" 


Regex.Replace("asdasfasdfasdf sfhagfdad SSN:123456789", @"^*SSN:\d{3}[-]?\d{2}[-]?\d{4}", "SSN:***") 
output: "asdasfasdfasdf sfhagfdad SSN:***" 
関連する問題