正则表达式允许在十进制分隔符(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}}}”)$”代码>。顺便说一句,开头的-?
已经允许使用负数。