如果?
後跟數字,我想用文本Rs
替換問號字符?
。C#正則表達式替換問號
這是我試過的。但不工作。
string str = "DFg sdfsdaf ?145 dfgsdf ?fg";
str = str.Replace(@"\\?", "Rs");
Console.WriteLine(str);
所需的輸出:
DFg sdfsdaf Rs145 dfgsdf ?fg
請幫助。
如果?
後跟數字,我想用文本Rs
替換問號字符?
。C#正則表達式替換問號
這是我試過的。但不工作。
string str = "DFg sdfsdaf ?145 dfgsdf ?fg";
str = str.Replace(@"\\?", "Rs");
Console.WriteLine(str);
所需的輸出:
DFg sdfsdaf Rs145 dfgsdf ?fg
請幫助。
嘗試這樣太:
System.Text.RegularExpressions.Regex.Replace(str,@"\?(?=\d+)","Rs");
我會建議this讀。上述模式查找?
並檢查它是否跟着digit
一次或多次,然後用Rs
替換?
。
完美.....非常感謝..先生.. –
很高興看到它有幫助! – NeverHopeless
試試這個正則表達式
\\?((?:\d+))
使用正則表達式來處理這個問題: -
Regex oRegex = new Regex(@"\?((?:\d+))");
str = oRegex.Replace(str, "Rs$1");
的意思是Regex.Replace? str.Replace搜索字符,而不是正則表達式。 – Default
不工作..... –
@默認:你說得對,它是Regex.Replace。感謝您指點。 –
試試這個:
Regex.Replace(str, @"\?(\d)", @"Rs$1")
它將匹配文字問號後面跟着一個數字和將其替換爲Rs
後跟該數字。後面跟着非數字的問號保持不變。
例子:
var str = "DFg sdfsdaf ?145 dfgsdf ?fg";
Console.Out.WriteLine(Regex.Replace(str, @"\?(\d)", @"Rs$1"));
輸出:
DFg sdfsdaf Rs145 dfgsdf ?fg
hi..the輸出即將DFg sdfsdaf Rs45 dfgsdf?fg .....第一個數字被刪除...請幫助 –
感謝您的幫助... –
@mhasan確保您的替換是'「Rs $ 1」 '不只是'「Rs」'。 「$ 1」被替換爲匹配的數字。 – verdesmarald
不工作..... –
爲什麼你需要正則表達式? – Default
你應該使用[Regex.Replace](http://msdn.microsoft.com/en-us/library/system.text.regularexpressions.regex.replace.aspx),而不是[string.Replace](http:// msdn.microsoft.com/en-us/library/system.string.replace.aspx) – Default