首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >解析体育成绩的正则表达式

解析体育成绩的正则表达式
EN

Stack Overflow用户
提问于 2017-02-13 15:32:50
回答 1查看 614关注 0票数 0

我试图验证表单字段包含排球比赛的有效分数。这就是我所拥有的,我认为它很有用,但我不是正则表达式方面的专家,不管怎么说:

代码语言:javascript
复制
r'^ *([0-9]{1,2} *- *[0-9]{1,2})((( *[,;] *)|([,;] *)|( *[,;])|[,;]| +)[0-9]{1,2} *- *[0-9]{1,2})* *$'

我使用python/django,并不是说它对regex匹配非常重要。我也在努力学习正则表达式,所以更优化的正则表达式将是有用的/有用的。

以下是分数的规则: 1.可以包含一个或多个有效集(set=game)结果。每个结果必须是dd-dd格式,其中0 <= dd <= 99 3。每个附加结果必须用任意一组分隔;4。允许任意数量的集合( >=1 )包含5。除一个数字的中间位置之外,任何地方都应该允许空格。

因此,下列各项都是有效的: 25-10或25 - 0或25- 9或23 -25 (可能是一个或多个空格) 25-10、25-15或25-10 25-15 (同样是允许的) 25-1 2- 25、25 -3 ;4 - 25 15-10

另外,我需要每个结果作为一个单独的单元进行解析。因此,在上面的最后一个例子中,我需要能够分别处理: 25-1 2 -25 25- 3 4- 25 15-10。

如果我能从每一个结果中去掉空间,那就太好了。我不能只去掉所有的空格,因为空格是结果集之间的有效分隔符。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-02-13 16:04:20

我认为可以解决你的问题。

代码语言:javascript
复制
str.replace(r"(\d{1,2})\s*-\s*(\d{1,2})", "$1-$2")

工作原理:(\d{1,2})捕获组,由1或2个数字组成。

\s*找到0或更多空格。

-找到-。

$1将内容替换为捕获组1的内容

$2将内容替换为捕获组2的内容

您还可以查看

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42207755

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档