我想为分数格式编写正则表达式,这种格式在足球等许多游戏中使用。
0-2(其中0是A队的得分,2是B队的得分)注意:需要大肆宣传。
我尝试了很多正则表达式,但以下几乎适用于所有场景 -
[0-9]-[0-9]+$
所以 -
0-2 -> True
100-200 -> True
a-a -> False
1-a -> False
1--2 -> False (Negative integer not allowed for right team)
唯一不起作用的情况是 - -1-2(A队的负整数)
非常感谢任何帮助。
谢谢, 贾韦德
答案 0 :(得分:3)
您需要两个组件:
最简单的正则表达式是:
^\d+-\d+$
这将匹配任何一方的任何数字组;它将排除否定,以及其他符号和字符。
答案 1 :(得分:1)
假设您不希望它允许A队的负分数,那么您需要^
来指定第一个数字部分([0-9]
)必须是该行的开头:< / p>
Regex.IsMatch("-1-2", "^[0-9]+-[0-9]+$") // False
Regex.IsMatch("11-2", "^[0-9]+-[0-9]+$") // True
注意:我还在左侧添加了一个额外的+
(可能会丢失),因此它会有多个数字的分数,例如11-2
。< / p>
答案 2 :(得分:0)
如果您需要在字符串中匹配(不是开头/结尾),请使用
@"\b(?<!-)\d+-\d+(?!-)\b"
匹配100-200,10-2,5-60,但不是-1-2,1-a,-1-a,1-a。 它也只匹配此字符串中的0-1,但不匹配AB0-1。