我正在寻找 C# 中的正则表达式来匹配以下任何字符串:“+99.99”、“-99.99”、“99.99”。相同的正则表达式不应匹配字符串“+-99.99”。任何人都可以提出一个答案。
问问题
409 次
4 回答
1
以下对我有用:
String regex = "^(\\+|-)?99\\.99$";
String str1 = "-99.99";
String str2 = "+99.99";
String str3 = "99.99";
String str4 = "+-99.99";
System.Console.WriteLine(Regex.IsMatch(str1, regex));
System.Console.WriteLine(Regex.IsMatch(str2, regex));
System.Console.WriteLine(Regex.IsMatch(str3, regex));
System.Console.WriteLine(Regex.IsMatch(str4, regex));
System.Console.ReadKey();
产出:
真真真假
解释: ^
将指示正则表达式引擎从字符串的开头开始匹配,(\\+|-)
表示一个+
或-
字符。是正则表达式语法中的+
特殊字符,因此需要转义。OR 运算符由|
字符表示。
?
表示+
or-
字符可能存在也可能不存在(它将匹配它之前的 0 或 1 个实例)。
99\\.99
表示字符串99.99
。也是正则表达式语法中的.
特殊字符,因此需要转义。该$
字符将指示正则表达式引擎在字符串末尾停止匹配。
于 2012-07-26T06:49:37.093 回答
0
试试这个:
[+-]?\d+\.\d+
解释:
[+-]? any character of: '+', '-'
(optional, matching the most amount possible)
\d+ digits (0-9)
(1 or more time, matching the most amount possible)
\. '.'
\d+ digits (0-9)
(1 or more times, matching the most amount possible)
于 2012-07-26T06:51:39.547 回答
0
您可以使用一些在线测试人员来测试您的正则表达式(对学习正则表达式很有帮助)。我最喜欢的是:http ://www.regexplanet.com/advanced/dotnet/index.html和http://regexhero.net/tester/
于 2012-07-26T06:54:29.267 回答
0
如果您希望它只匹配正数或负数 99.99,您可以使用[+-]?99\.99
. 此正则表达式将匹配99.99,可选地以+
or-
字符开头。如果您想匹配任何数字,可选择最多两位小数,您可以使用[+-]?\d{1,}(\.\d{0,2})?
.
像往常一样,如果您希望正则表达式仅匹配整个字符串,则需要在前面加上^
,$
即^[+-]?99\.99$
.
于 2012-07-26T07:17:14.667 回答