足球比分格式的正则表达式

时间:2013-12-05 17:58:26

标签: c# regex

我想为分数格式编写正则表达式,这种格式在足球等许多游戏中使用。

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队的负整数)

非常感谢任何帮助。

谢谢, 贾韦德

3 个答案:

答案 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。

工作示例:http://regex101.com/r/kI8pU3