gpt4 book ai didi

Java - 模式匹配但未能捕获

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:12:44 24 4
gpt4 key购买 nike

这是我的数据集中的三个样本行:

|   |   |   |   featureB >= 16104.33 : 18873.52 (1/0)

| featureA >= 17980.32

featureC = ABC BLAH BLAH blA'H $blah 4/ blah blah

我正试图想出一个模式匹配器来捕获以下内容:

  • 功能名称
  • 关系 (=, >=, <)
  • 特征值(可以是数字和/或字符的混合,但不能包含冒号)
  • result(冒号之后和括号之前的值 - 冒号和结果是可选的,可能不会出现在某些行上)

我想出了以下模式,但它未能捕获特征值:

Pattern.compile("(?:\\|   )*(.*?)(>?=|<)((?!:).)*(?::?)(.*?)(?:\\(.*\\))?")

所以基本上我的目标是让 group(1) 包含特征名称,group(2) 包含关系,group(3) 包含特征值,group(4) 包含结果(如果存在)。

目前 group(1)group(2)、group(4) 产生了我所期望的但 group(3) 永远不会被捕获,并且始终为空。

我将不胜感激任何帮助/建议。

最佳答案

根据您精心起草的要求,我想出了这个正则表达式来捕获所有 4 个组(第 4 个是可选组):

^[ |]*(\w+)\s*(>?=|<)\s*([^:]+)(?:\s*:\s*([^()]*))?

Java 模式:

Pattern p = Patttern.compile("^[ |]*(\\w+)\\s*(>?=|<)\\s*([^:]+)(?:\\s*:\\s*([^(]+))?.*$");

RegEx Demo

关于Java - 模式匹配但未能捕获,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35319868/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com