如果?
后跟数字,我想用问号Rs
替换问号字符?
。
这是我尝试过的。但是没有工作。
string str = "DFg sdfsdaf ?145 dfgsdf ?fg";
str = str.Replace(@"\\?", "Rs");
Console.WriteLine(str);
期望的输出:
DFg sdfsdaf Rs145 dfgsdf ?fg
请帮忙。
答案 0 :(得分:3)
试试这个:
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
答案 1 :(得分:3)
也尝试这样:
System.Text.RegularExpressions.Regex.Replace(str,@"\?(?=\d+)","Rs");
我建议this阅读。上述模式会查找?
并检查digit
是否一次或多次?
,然后将Rs
替换为{{1}}。
答案 2 :(得分:1)
试试这个正则表达式
\\?((?:\d+))
使用正则表达式处理: -
Regex oRegex = new Regex(@"\?((?:\d+))");
str = oRegex.Replace(str, "Rs$1");