regex - 正则表达式仅最后匹配
问题描述
我正在尝试创建一个正则表达式来捕获:
( ( Workers > 2 ) AND ( Minute between 3 AND 10) )
( ( Workers > 2 ) AND ( Minute between 3 AND 10) ) AND ( ( Pais = 32) AND ( Minute > 5 ) )
我想捕捉:
第一场比赛:
Full match: AND ( Minute between 3 AND 10)
Group 1: Minute between 3 AND 10
比赛2:
Full match: AND ( Minute > 5 )
Group 1: Minute > 5
我创建了以下正则表达式:
AND.*\(.*(Minute.*?)\)
但在第二个字符串中,匹配从第一次出现开始。我需要最后一场比赛。
你可以在这里查看: https ://regex101.com/r/6Nt3UX/2
解决方案
如果您使用的是 .net,那么您可以再向 Match Function 传递一个参数。RegexOptions.RightToLeft 这将从右开始搜索匹配项。Regex.Match(input,"Pattern",RegexOptions.RightToLeft) 谢谢
推荐阅读
- google-bigquery - 是否可以在 BigQuery JDBC 驱动程序上设置 MaximumBytesBilled?
- spring-batch - 我可以使用一些 spring 批处理编写器写入单行 txt 文件吗?
- sap - 我需要哪个 SAP 表来查找年销售额?
- sql - SQL在条件下跳过最大行
- sql-server - 如何将本地查询发送到开放查询 DB2400?SQL 服务器
- amazon-redshift - PrivateLink 是否允许 firehose 访问我的私有 Redshift 集群?
- arrays - 将 React 状态更新为二维数组?
- extbase - 如何使用 extbase 获取 sys_language_uid
- java - 如何在spring-rabbitmq + spring cloud中手动断开通道与监听器的连接
- java - 重新查找 WebElement 在单击事件中删除了哪个类