我有一个字符串“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。
谢谢!
答案 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+)