Regex Devexpress文本编辑掩码正则表达式无效

Regex Devexpress文本编辑掩码正则表达式无效,regex,winforms,devexpress,percentage,textedit,Regex,Winforms,Devexpress,Percentage,Textedit,我正在将下面的掩码设置应用于Devexpress文本编辑控件,但在执行时出现语法错误 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})?)%"; 使用此正则表达式背后的概念是输入0-100%的值

我正在将下面的掩码设置应用于Devexpress文本编辑控件,但在执行时出现语法错误

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})?)%";
使用此正则表达式背后的概念是输入0-100%的值,可选3位小数

25,25.5,60,60.369,99但是101,10.2569
是无效值

请指导我如何更正此表达式。

请尝试以下操作(我无法在此处访问devexpress,因此无法完全测试):

它分为两个备用部分,用“|”分隔,第一部分检查100,最多三个小数点零(100100.0100.00100.000)

第二部分涉及小数点前有一个或两个数字的数字,也可以是一个小数点,后面最多有三个数字(25、25.5、60、60.369、99)

\R.
实际上与当前区域性的System.Globalization.NumberFormatInfo.NumberDecimalSeparator属性指定的十进制分隔符匹配。根据文件。如果您只想选择十进制,则可以将
\R.
更改为
\.

,因为我在中找不到它,您确定支持惰性运算符吗?此外,它们在文档中似乎没有双重转义,但这不会导致语法错误
(100(\R.0{1,3})?)|((\d{1,2}(\R.\d{1,3})?))