使用正则表达式查找和替换

本文关键字:替换 查找 正则表达式 | 更新日期: 2023-09-27 18:36:42

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

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

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

使用正则表达式查找和替换

这是

在做你想做的事吗?

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

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

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

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

这涉及后瞻断言,因此只有在之前有^[a-z]+z的情况下,才会替换0{3,}

也许你正在寻找:

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