代表两个参与者相互比赛的足球队的正则表达式
Regex for football teams representing two participants playing against each other
我的任务是:
EventName is a string representing two participants playing against
each other.
我在想如何使用数据注释来做到这一点。到目前为止我有这个:
[RegularExpression("^[^0-9]+$", ErrorMessage = "Name cannot contain numbers")]
[Required, MinLength(10), MaxLength(150)]
我认为我应该只允许在这两个团队之间使用 1 个分隔符(“-”“:”或 space)。其他任何事情都不应该被允许。没有特殊字符,没有数字。
有人能给我指出正确的方向吗?
还有谁知道足球队的名字中是否可以包含数字?
类似于 Villa1874 - Levski1914 吗?
允许单个分隔符(:
、-
或单个白色-space,任何可以被白色-space包围)和numbers/underscores 在团队名称中:
^\w+ *[ -:] *\w+$
解释:
^
断言行首的位置
\w+
匹配任何单词字符(等于[a-zA-Z0-9_])(1个或多个)
*
匹配任何白色-space(0 个或更多)
[ -:]
匹配列表中存在的单个字符
*
匹配任何白色-space(0 个或更多)
\w+
匹配任何单词字符(等于[a-zA-Z0-9_])(1个或多个)
^
断言行尾的位置
测试:https://regex101.com/r/gBZDLE/6
如果您不想在团队名称中使用数字或下划线,您可以将 \w
替换为 [A-Za-z]
:
^[A-Za-z]+ *[ -:] *[A-Za-z]+$
测试:https://regex101.com/r/gBZDLE/7
前面不允许在团队名称中使用 spaces。为此,您可能需要匹配 [A-Za-z]+(?: [A-Za-z]+)*
。这将匹配任何以字母字符开头并包含一个或多个由单个 space 分隔的单词的名称(例如“Manchester”或“Manchester United”)。完整的正则表达式:
^[A-Za-z]+(?: [A-Za-z]+)* *[ -:] *[A-Za-z]+(?: [A-Za-z]+)*$
测试:https://regex101.com/r/gBZDLE/5
[A-Za-z]+(?: [A-Za-z]+)
的解释:
[A-Za-z]+
匹配单个字母字符(+
一次或多次)
(?: [A-Za-z]+)
非捕获组 (?: )
,匹配单个白色-space
后跟字母字符一次或多次 [A-Za-z]+
我的任务是:
EventName is a string representing two participants playing against each other.
我在想如何使用数据注释来做到这一点。到目前为止我有这个:
[RegularExpression("^[^0-9]+$", ErrorMessage = "Name cannot contain numbers")]
[Required, MinLength(10), MaxLength(150)]
我认为我应该只允许在这两个团队之间使用 1 个分隔符(“-”“:”或 space)。其他任何事情都不应该被允许。没有特殊字符,没有数字。
有人能给我指出正确的方向吗?
还有谁知道足球队的名字中是否可以包含数字?
类似于 Villa1874 - Levski1914 吗?
允许单个分隔符(:
、-
或单个白色-space,任何可以被白色-space包围)和numbers/underscores 在团队名称中:
^\w+ *[ -:] *\w+$
解释:
^
断言行首的位置\w+
匹配任何单词字符(等于[a-zA-Z0-9_])(1个或多个)*
匹配任何白色-space(0 个或更多)[ -:]
匹配列表中存在的单个字符*
匹配任何白色-space(0 个或更多)\w+
匹配任何单词字符(等于[a-zA-Z0-9_])(1个或多个)^
断言行尾的位置
测试:https://regex101.com/r/gBZDLE/6
如果您不想在团队名称中使用数字或下划线,您可以将 \w
替换为 [A-Za-z]
:
^[A-Za-z]+ *[ -:] *[A-Za-z]+$
测试:https://regex101.com/r/gBZDLE/7
前面不允许在团队名称中使用 spaces。为此,您可能需要匹配 [A-Za-z]+(?: [A-Za-z]+)*
。这将匹配任何以字母字符开头并包含一个或多个由单个 space 分隔的单词的名称(例如“Manchester”或“Manchester United”)。完整的正则表达式:
^[A-Za-z]+(?: [A-Za-z]+)* *[ -:] *[A-Za-z]+(?: [A-Za-z]+)*$
测试:https://regex101.com/r/gBZDLE/5
[A-Za-z]+(?: [A-Za-z]+)
的解释:
[A-Za-z]+
匹配单个字母字符(+
一次或多次)(?: [A-Za-z]+)
非捕获组(?: )
,匹配单个白色-space[A-Za-z]+