admin管理员组

文章数量:1323238

RegEx

我有类似的字符串; 上半场进球1.5 / 2。开头的文本可以是任何内容,因此不能依赖于它作为RegEx的一部分,因为它有所不同。我想要做的是在末尾匹配数字序列。测试样本为:

  • 5
  • 0.5 / 1
  • 2.5 / 3
  • 147

该序列可以包含斜线,也可以不包含。如果包含斜杠,则后跟[值-整数或十进制。十进制(如果存在一个)之前的值可以是任意数字-\ d +--但必须之后的值应为0或5] >-(0 | 5)。斜杠(/)之前的第一个值是整数或小数。如果序列包含斜杠,则后面的数字也可以是整数或小数。所有值均为正。此RegEx的要点是,我只需要它匹配

once

。这是我正在使用的RegEx:(\d(\.(0|5))?\/\d(\.(0|5)))|(\d\.(0|5))|(\d)

上面正则表达式的问题是我使用的示例字符串;

上半场进球1.5 / 2

匹配了两次。在1.5上一次,在2上第二次。我现在将其更改为:\d+(\.(0|5))?(\/?\d+(\.(0|5))?)?

如果我提供测试样本,这会更好一些[[但是

1.6 / 2,它将匹配6/2

。这是因为前一个数字的小数部分是可选的。我不确定后面是否可以派上用场,我对他们没有太多经验。可悲的是,事先的文本是无法预测的,否则我可以修剪字符串以仅获取所需的子字符串,然后从字符串的开头进行匹配,但不能这样做。应匹配和不匹配的概述:1 // Match 5.5 // Match 7.8 // No Match 0/0.5 // Match 147/147.5 // Match 2. // No Match 6.5/ // No Match 7.0/8 // Match 10.0 // Match 1./2.5 // No Match 5./6 // No Match 我已尽力解释,但如果您需要更多详细信息,我会提供给他们
我有类似的字符串;上半场进球1.5 / 2。开头的文本可以是任何内容,因此不能依赖于它作为RegEx的一部分,因为它有所不同。我想做的是匹配数字...
回答如下:

本文标签: RegEx