regex.replace #number;#

时间:2010-11-29 17:46:12

标签: c# .net regex replace

要找到的正则表达式是什么(PoundSomenumberSemiColonPound)(又名#Number;#)?我用过这个但不能正常工作

 string st = Regex.Replace(string1, @"(#([\d]);#)", string.Empty);

4 个答案:

答案 0 :(得分:4)

您正在寻找#\d+;#

  • \d匹配单个数字字符
  • +匹配前面一个或多个字符。

答案 1 :(得分:1)

(\x23\d+\x3B\x32)

#/都用于模式,因此遇到麻烦。尝试使用上面的内容(通常当我遇到特定字符的问题时,我会回复他们的hex传真(asciitable.com有一个很好的参考)

编辑忘记分组替换。

EDITv2 以下对我有用:

String string1 = "sdlfkjsld#132;#sdfsdfsdf#1;#sdfsdfsf#34d;#sdfs";
String string2 = System.Text.RegularExpressions.Regex.Replace(string1, @"(\x23\d+\x3B\x23)", String.Empty);
Console.WriteLine("from: {0}\r\n  to: {1}", string1, string2);;

输出:

from: sdlfkjsld#132;#sdfsdfsdf#1;#sdfsdfsf#34d;#sdfs
  to: sdlfkjsldsdfsdfsdfsdfsdfsf#34d;#sdfs
Press any key to continue . . .

答案 2 :(得分:0)

除了@SLaks关于使用#允许多位数的评论

之外,您可能需要转义+符号,它们通常被解释为评论标记。

答案 3 :(得分:0)

使用\d时不需要字符类,而SLaks指出您需要+来匹配一个或多个数字。此外,由于你没有捕获任何东西,括号也是多余的,所以这样的事情应该这样做

string st = Regex.Replace(string1, @"#\d+;#", string.Empty);