2

如果后跟数字,我想?用文本替换问号字符。Rs?

这是我尝试过的。但不工作。

 string str = "DFg sdfsdaf ?145 dfgsdf ?fg";
 str = str.Replace(@"\\?", "Rs");
 Console.WriteLine(str);

期望的输出:

DFg sdfsdaf Rs145 dfgsdf ?fg

请帮忙。

4

3 回答 3

4

也试试这样:

System.Text.RegularExpressions.Regex.Replace(str,@"\?(?=\d+)","Rs");

我会推荐这个阅读。上面的模式查找?并检查它是否跟随digit一个或多个时间,然后替换?Rs.

于 2012-11-15T08:23:18.413 回答
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
于 2012-11-15T08:18:51.163 回答
1

试试这个正则表达式

\\?((?:\d+))

使用正则表达式来处理这个: -

  Regex oRegex = new Regex(@"\?((?:\d+))");
  str = oRegex.Replace(str, "Rs$1");
于 2012-11-15T08:14:59.697 回答