0

検索クエリであるため、入力するたびに変化する文字列があります。この例はZ00044XLE1311ですが、顧客がすべての0を削除した場合に同じ製品が返されるようにしたいと思います(後には常にゼロがあります)最初の数文字)ただし、これはできないようです。代わりに、基本的にZ*44XLE1311を検索します。

これが私の現在の検索機能の実行方法であるため、正規表現を使用してこれを実行することをお勧めします。置換を使用する必要があることは承知していますが、この問題に対してこれを適切に使用する方法がわかりません。

私の現在のコードは、

                if (!string.IsNullOrEmpty(base.RemoveCharacters))
                {
                    var regex = new Regex(string.Format("[{0}]+", base.RemoveCharacters));
                    text = regex.Replace(text, string.Empty);
                }

                if (Regex.IsMatch(text, "^[a-z]+00+", RegexOptions.IgnoreCase))
                {
                    text = new Regex("0{1,}", RegexOptions.IgnoreCase).Replace(text, "00*", 1);
                }
                else
                {
                    if (Regex.IsMatch(text, "^[a-z]+", RegexOptions.IgnoreCase))
                    {
                        text = new Regex("[A-Z]{1,}", RegexOptions.IgnoreCase).Replace(text, "[A-Z]*", 1);
                    }
                    URL = WebUtilities.AddToQueryString(URL, box.Key, Page.Server.UrlEncode(text));
            }
        }
4

2 に答える 2

1

次のことができます。

Regex.Replace(text, @"(?i)(?<=^[a-z])0+", "");
于 2012-06-19T10:34:10.403 に答える
0

私は実際にこれを機能させています、私は使用しました:

                text = Regex.Replace(text, "^([a-z]+)0*([1-9][0-9]*)", @"$1 0\* $2", RegexOptions.IgnoreCase);
于 2012-06-19T10:51:00.460 に答える