如果?
后跟数字,我想用文本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