以下是我的数据集中的三个示例行:
| | | | featureB >= 16104.33 : 18873.52 (1/0)
| featureA >= 17980.32
featureC = ABC BLAH BLAH blA'H $blah 4/ blah blah
Run Code Online (Sandbox Code Playgroud)
我试图想出一个模式匹配器,它将捕获以下内容:
我提出了以下模式,但它无法捕获特征值:
Pattern.compile("(?:\\| )*(.*?)(>?=|<)((?!:).)*(?::?)(.*?)(?:\\(.*\\))?")
Run Code Online (Sandbox Code Playgroud)
所以基本上我的目标是group(1)
包含要素名称,group(2)
包含关系,group(3)
包含要素值,以及group(4)
包含结果(如果存在).
目前group(1)
,group(2),
并group(4)
产生我期待但从group(3)
未被捕获的东西,并且总是空的.
我将不胜感激任何帮助/建议.
根据您精心起草的要求,我想出了这个正则表达式来捕获所有 4 个组(第 4 个是可选组):
^[ |]*(\w+)\s*(>?=|<)\s*([^:]+)(?:\s*:\s*([^()]*))?
Run Code Online (Sandbox Code Playgroud)
Java模式:
Pattern p = Patttern.compile("^[ |]*(\\w+)\\s*(>?=|<)\\s*([^:]+)(?:\\s*:\\s*([^(]+))?.*$");
Run Code Online (Sandbox Code Playgroud)