Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/287.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
正则表达式允许在十进制分隔符(C#)后使用某些有符号数字_C#_Regex_Negative Number - Fatal编程技术网

正则表达式允许在十进制分隔符(C#)后使用某些有符号数字

正则表达式允许在十进制分隔符(C#)后使用某些有符号数字,c#,regex,negative-number,C#,Regex,Negative Number,我有以下构造函数 public DecimalFilter(int digitsAfterZero) { //mPattern = Pattern.compile("[0-9]+((\\.[0-9]{0," + (digitsAfterZero - 1) + "})?)||(\\.)?"); regex = "-?[0-9]+(.[0-9]{0," + (digitsAfterZero - 1) + "})?$"; } digitsAfterZero传递给构造

我有以下构造函数

public DecimalFilter(int digitsAfterZero)
{
        //mPattern = Pattern.compile("[0-9]+((\\.[0-9]{0," + (digitsAfterZero - 1) + "})?)||(\\.)?"); 
        regex = "-?[0-9]+(.[0-9]{0," + (digitsAfterZero - 1) + "})?$";
}

digitsAfterZero
传递给构造函数的变量是小数点分隔符后面的位数,我希望小数点具有。我还想允许负小数。我必须对正则表达式进行哪些更改才能使其正常工作?

是的,因为数字是一个可以为负数的百分比。他指的是负数负小数点您需要转义小数点:
\.
。另外,为什么小数位数被量化为
{0,n}
,而不是
{1,n}
?当然,如果你有一个小数点,你希望它后面至少有一个数字。首先,转义
,并在开头添加
^
regex=$@“^-?[0-9]+(?:\.[0-9]{{0,{digitsAfterZero-1}}}”)$”。顺便说一句,开头的
-?
已经允许使用负数。