private static Regex regex_Unsigned_Integer = new Regex("^(([0-9]{1})|([1-9][0-9]+))$");
private static Regex regex_Signed_Integer = new Regex("^([+|-]?)(([0-9]{1})|([1-9][0-9]+))$");
private static Regex regex_Unsigned_Factor = new Regex("^(([0-9]+[/][1-9]{1}[0-9]*)|([1-9]{1}[0-9]*['][1-9]+[/][1-9]{1}[0-9]*))$");
private static Regex regex_Signed_Factor = new Regex("^([+|-]?)(([0-9]+[/][1-9]{1}[0-9]*)|([1-9]{1}[0-9]*['][1-9]+[/][1-9]{1}[0-9]*))$");
private static Regex regex_Unsigned_Decimal = new Regex("^((([0-9]{1})|([1-9]{1}[0-9]+))[.][0-9]+)$");
private static Regex regex_Signed_Decimal = new Regex("^([+|-]?)((([0-9]{1})|([1-9]{1}[0-9]+))[.][0-9]+)$");
正则表达式是否包含一些规则,以匹配只有带符号的数字应该用括号括起来的条件。
THX
答案 0 :(得分:0)
你不需要 6个正则表达式,所有这些都可以放在一个正则表中:
^(?:
(?<sign>\([-+])?
(?:[0-9]+')?
[0-9]+(?:.[0-9]+)?
(?:/[0-9]+(?:.[0-9]+)?)?
(?(sign)\))
)$
您要求的部分是:
在可选的命名组中抓取(
后跟+
或-
:
(?<sign>\([-+])?
匹配数字:它是正则表达式的中间部分
如果sign
组匹配,则匹配)
:
(?(sign)\))
这是您正在寻找的条件正则表达式运算符:
(?(groupName)thenExpression|elseExpression)
|elseExpression
部分是可选的。