1

以下の Mask 設定を Devexpress TextEdit コントロールに適用していますが、実行すると構文エラーが発生します。

textEdit1.Properties.Mask.MaskType = DevExpress.XtraEditors.Mask.MaskType.RegEx;
textEdit1.Properties.Mask.EditMask = "(100(?:\\.0{1,3})?|0*?\\.\\d{1,3}|\\d{1,2}(?:\\.\\d{1,3})?)%";

この正規表現の使用の背後にある概念は、オプションで小数点以下 3 桁までの 0 ~ 100 パーセントの値を入力することです。

like25, 25.5, 60, 60.369, 99 but 101, 10.2569は無効な値です。

この表現を修正する方法を教えてください。

4

1 に答える 1

0

以下を試してください (ここでは devexpress にアクセスできないため、完全にはテストできませんでした):

(100(\R.0{1,3})?)|((\d{1,2}(\R.\d{1,3})?))

「|」で区切られた 2 つの交互の部分であり、最初の部分は最大 3 つの 10 進数ゼロ (100、100.0、100.00、100.000) で 100 をチェックします。

2 番目の部分は、小数点の前に 1 桁または 2 桁の数値を扱い、オプションで小数点と 3 桁までの数値を扱います (25、25.5、60、60.369、99)。

\R.実際には、現在のカルチャの System.Globalization.NumberFormatInfo.NumberDecimalSeparator プロパティによって指定された小数点記号に一致します。 ドキュメントごと。\R.に変更することができます\.

于 2013-04-23T08:44:36.713 に答える