C# 十进制值限制为16位的正则表达式
我想要一个正则表达式来限制输入的十进制值最大为16位或15位,一个字符包括小数点 我在下面的正则表达式中发现它在C代码中工作,但当我在TextEdit xaml中使用它作为掩码时。DevExpress引发异常语法错误: 遮罩: ^?:?=.{0,16}$\d*\。\d+\d{0,16}[kkmmbtt]$ TextEdit Xaml:C# 十进制值限制为16位的正则表达式,c#,regex,wpf,xaml,devexpress,C#,Regex,Wpf,Xaml,Devexpress,我想要一个正则表达式来限制输入的十进制值最大为16位或15位,一个字符包括小数点 我在下面的正则表达式中发现它在C代码中工作,但当我在TextEdit xaml中使用它作为掩码时。DevExpress引发异常语法错误: 遮罩: ^?:?=.{0,16}$\d*\。\d+\d{0,16}[kkmmbtt]$ TextEdit Xaml: <dxe:TextEdit HorizontalAlignment="Left" MaskType="RegEx" Mask="(?:(?=.{0
<dxe:TextEdit HorizontalAlignment="Left" MaskType="RegEx"
Mask="(?:(?=.{0,16}$)[0-9]*([.]?[0-9]+)|[0-9]{0,16})[kKmMbBtT]?"
VerticalAlignment="Top" Width="150"
EditValue="{Binding DecValue, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay}"
Margin="10,33,0,0"/>
我想从中实现的目标:
用户可以输入16位十进制值,包括小数点或
用户可以输入15位数字和一个字符,包括小数点
他一次只能输入小数点
输入字符串的总长度不得超过16个字符。
根据:
扩展正则表达式为
创建输入掩码。此模式中掩码使用的语法类似
按照POSIX ERE规范定义的语法。反向引用
不支持
因此,您不能使用分组构造,如?:子表达式或?=子表达式等。您可以使用一些奇怪的掩码,如:
\{0 0 0,16}{00 0 0 0 0 0 0,16}}}{{00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 5 5 5 5 5 5 5 5 5 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 d{1,8}\d{6}\R\d{1,9}\d{5}\R\d{1,10}\d{4}\R\d{1,11}\d{3}\R\d{1,12}\d{2}\R\d{1,13}\d{1,14}\R\n
在您的XAML中:
<dxe:TextEdit HorizontalAlignment="Left" MaskType="RegEx"
Mask="\d{0,16}|\d{14}\R.\d{1}|\d{13}\R.\d{1,2}|\d{12}\R.\d{1,3}|\d{11}\R.\d{1,4}|\d{10}\R.\d{1,5}|\d{9}\R.\d{1,6}|\d{8}\R.\d{1,7}|\d{7}\R.\d{1,8}|\d{6}\R.\d{1,9}|\d{5}\R.\d{1,10}|\d{4}\R.\d{1,11}|\d{3}\R.\d{1,12}|\d{2}\R.\d{1,13}|\d{1}\R.\d{1,14}|\R.\d{1,15}"
VerticalAlignment="Top" Width="150"
EditValue="{Binding DecValue, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay}"
Margin="10,33,0,0"/>
MaskType=RegEx-Mask=?:?=.{0,16}$[0-9]*[.]?[0-9]+|[0-9]{0,16}[kkmbbtt]?@grantwiney异常是:语法错误,直接在XAML编辑器中抛出。您好,nempoBu4,谢谢您的回复。根据情况,这个正则表达式很好,但它太长了。阿基夫