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*");

これにより、3 つ以上のゼロが「00*」に置き換えられます

これを最初のチェックと組み合わせることもできます

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

これには後読みアサーションが含まれているため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 に答える