0

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

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

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

4

2 回答 2

1

这是在做你想做的事吗?

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

这将用“00 *”替换3个或更多零

您也可以将其与您的第一张支票结合使用

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

这涉及一个lookbehind断言,所以只有在有before的0{3,}情况下才会被替换。^[a-z]+z

于 2012-06-11T09:33:58.080 回答
0

也许您正在寻找:

str = Regex.Replace(str, "(?i)(^[a-z]+0)0+", "$1+");
于 2012-06-11T09:33:36.140 回答