使用Regex查找和替换

时间:2012-06-11 09:01:11

标签: c# regex

我试图找到并替换一个字符串,当有人将它作为搜索查询输入时,如果它们拼错了代码,例如Z0000ECEL被写成Z000ECEL它会将它替换为Z00 + ECEL,这样它就会找到最近的代码,并发现它仍然拼写错误,我目前正在使用:

        if (Regex.IsMatch(searchWords[0], "^[a-z]+z00+", RegexOptions.IgnoreCase))
        {
            Regex.Replace(searchWords[0], "[0]+", "*0", RegexOptions.IgnoreCase);
        }

我不想在字符串的开头放置一个通配符,因为这会带来许多结果。

2 个答案:

答案 0 :(得分:1)

这样做你想要的吗?

Regex.Replace(searchWords[0], "0{3,}", "00*");

这将用" 00 *"

替换3个或更多个零

您也可以将其与首次检查结合使用

Regex.Replace(searchWords[0], "(?<=^[a-z]+z)0{3,}", "00*", RegexOptions.IgnoreCase);

这涉及一个lookbehind断言,因此0{3,}只会被替换,如果之前有^[a-z]+z

答案 1 :(得分:0)

也许您正在寻找:

str = Regex.Replace(str, "(?i)(^[a-z]+0)0+", "$1+");