2013-12-18 89 views
-5

問題: 我有一個字符串說:"I am a boy"將字符串中的所有字符轉換爲「*」

我需要一個正則表達式,將字符串中的所有字符都轉換爲"*"

在此先感謝。

+3

請發表您的評論。 – Jerry

+0

這裏正則表達式的需要是什麼? –

+0

我需要使用數據格式字符串替換它...任何想法 –

回答

6

或者你也可以做到這一點沒有正則表達式:

var s = "I am a boy"; 

var q = new string('*', s.Length); 
+0

這將刪除空格。 – Alex

+0

@亞歷克斯你殺死什麼意思?它將用*替代所有字符(空格也是一個字符) – wudzik

+0

修復了我的評論。正在OP的點可能沒有想要的。雖然他沒有提到它。所以你的解決方案是有效的,而不是正則:D – Alex

0

使用Regex class和一個匹配所有空格和單詞字符的正則表達式表達式(雙關)。

var s = "I am a boy"; 

var regex = new Regex("[\\w\\s]"); 

var q = regex.Replace(s,"*"); 
0

編輯:

假設OP不想white spaces要替換*

1)本會工作:[a-zA-z0-9]

var str = "I am a boy"; 
var regex = new Regex(@"[a-zA-z0-9]"); 
var result = regex.Replace(str,"*"); 

輸出:* ** * *** Regex Demo

2)代替白空間也:[\\w\\s]

var str = "I am a boy"; 
var regex = new Regex(@"[\w\s]"); 
var result = regex.Replace(str,"*"); 

輸出:********** Regex Demo

OR

var str = "I am a boy"; 
var result = new String('*', str.Length); 
+0

@stema編輯我的答案。 –

0

試試這個正則表達式

Regex.Replace("I AM A BOY", "[\w\\s]", "*") 

它會給你OP喜歡* ** * ***

+0

用Vb試試這個,並說 –

+0

這個問題被標記爲c#和.net,我不知道VB。但是在快速編寫代碼之後,我承認這個正則表達式可能會在VB中給你這個輸出。但是你仍然從另一個答案中複製出來,'\\ s'部分在這裏不起作用(我想你不知道該怎麼做),因爲如果它能夠工作,它將取代空格。另外替換反斜槓和「S」字符是沒有意義的。 – stema

2

不是正則表達式,但有關如何;

String input = "I am a boy"; 
String result = new String('*', input.Length); 
2

如果要替換包括空格在內的每個字符,可以使用以下命令。點.將匹配任何字符(except newline)。

string input = "I am a boy"; 
string output = Regex.Replace(input, ".", "*"); 
// => "**********" 

如果你想避免更換空白,您可以使用它匹配任何非空白字符\S

string input = "I am a boy"; 
string output = Regex.Replace(input, "\\S", "*"); 
// => "* ** * ***" 
2

因爲每個人都去\ w \ s我會建議一個替代方案。

var r = new Regex("[A-Za-z0-9]"); 
var s = r.Replace("I am a boy", "*"); 

此作品以類似的方式來提出的其他正則表達式,但給你一些,如果說你要離開一些字符出來什麼更多的控制。