使用Regex.Replace用string.empty替换_x

时间:2011-02-18 12:08:59

标签: c# regex

我有一个字符串“region_2> 0”,我想使用Regex将string替换为_2。

我的表达式是((_)[^_]*)\w(?=[\s=!><]),它在Regulator和Expresso中都给了我_2。但是,代码(c#):

Regex.Match(legacyExpression, "((_)[^_]*)\\w(?=[\\s=!><])").Value

给了我“_2&gt; 0”,这也导致替换错误(它返回“region”,因为删除整个“_2&gt; 0”而不是“_2”。我想要的结果是“region&gt; 0”代码和正则表达式程序不应该给出相同的结果吗?我怎样才能让它工作?

(注意字符串不是静态的,它可以有许多不同的形式,但规则是我想用string.empty替换字符串中的最后一个_X。

谢谢!

2 个答案:

答案 0 :(得分:0)

我将您的代码原样复制到新项目中:

static void Main(string[] args)
{
    var legacyExpression = "region_2>0";
    var rex = Regex.Match(legacyExpression, "((_)[^_]*)\\w(?=[\\s=!><])").Value;
    Console.WriteLine(rex);
    Console.ReadKey();
}

输出为_2

答案 1 :(得分:0)

我认为这可以起作用

(_\d+)