0

文字列が次のように作成されるasp.netアプリケーションがあります。

string abc;
abc="vindo|vindo|vind?40|vind?40|vincent van uden|vilm|vilm|slim?new|compas|*|darkc?loud";

Regex ABCRegex = new Regex(abc);

but It throws error.
   at System.Text.RegularExpressions.RegexParser.ScanRegex()
   at System.Text.RegularExpressions.RegexParser.Parse(String re, RegexOptions op)
   at System.Text.RegularExpressions.Regex..ctor(String pattern, RegexOptions options, Boolean useCache).

理由は、*、+、?、{num、num}が「貪欲な数量詞」であるためです。

しかし、同じ文字列を使用して正規表現を作成する方法はありますか、またはこれらの貪欲な数量詞を他の文字に置き換えることは可能ですか?

文字列を変更したくありません。

4

2 に答える 2

1

正規表現から削除する|*か、置き換えるだけ|.*ですが、意味がありません。ヒント:RegExデバッグにはRegulatorを使用してください。

于 2011-11-24T06:42:19.593 に答える
1

この文字列を試してください:

abc = @"vindo|vindo|vind?40|vind?40|vincent van uden|vilm|vilm|slim?new|compas|\*|darkc?loud";
于 2011-11-24T06:49:35.827 に答える