是否可以比较一行中的两个值并获取所需的值,但这两个值都与写入的正则表达式匹配

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了是否可以比较一行中的两个值并获取所需的值,但这两个值都与写入的正则表达式匹配相关的知识,希望对你有一定的参考价值。

text =“来自团队的快乐4/20!13/10恭喜......之后这么多内容”

我想只获得13/10这是评级。我写过正则表达式

(\d+\.\d+|\d+)/(((?=10)10)|([1-9]\d+)) 

但它取得了第一个(4/20)。这有可能实现使用正则表达式吗?

答案

在你的模式(?=10)10的这一部分,你可以省略正向前瞻,因为这表示如果右边的是10,那么匹配10.这部分[1-9]\d+匹配10及以上,所以10已经在范围内。

您可以使用带有quantifier {2}的捕获组来重复该组。

你的模式也可以写成\d+(?:\.\d+)?/[1-9]\d+)

要获得第二组,您可以使用:

^(?:.*?(\d+(?:\.\d+)?/[1-9]\d+)){2}
  • ^字符串的开头
  • (?:非捕获组 .*?匹配任何非贪婪的字符 (捕获组 \d+(?:\.\d+)?匹配1+位数,可选择匹配一个点和1+位数 /匹配/ [1-9]\d+第10场及以上比赛 )关闭捕获组
  • ){2}关闭非捕获组并重复2次

Regex demo

以上是关于是否可以比较一行中的两个值并获取所需的值,但这两个值都与写入的正则表达式匹配的主要内容,如果未能解决你的问题,请参考以下文章

比较一个结构的两个值并在 UITableView swift 4.0 中获取额外的单元格

具有列表值的列,如果列表具有超过 1 个元素,则解码这两个值并包含在新列的同一行中的列表中

如何在谷歌电子表格中将多个单元格与一行中的两个可能值进行比较?

如何比较两个for循环的值并在django模板中使用if语句?

比较 2 个表中的值并生成具有差异的新表

两个烟花之间的比较和打印所需的结果使用AWK [重复]