【发布时间】:2023-03-26 06:47:01
【问题描述】:
我正在寻找正则表达式模式提取来提取以下示例,
sample Input:
"USER 1-EFA-Thermal Analysis-0.25;USER 2-EFA-Thermal Analysis-0.25;"
String[] parts = filename.split("\\;");
for (int i=0;i<=parts.length;i++){
}
上面的代码用“;”将行分成多个部分作为分隔符。 在 For 循环中,我想再次将每个部分 [] 拆分为三个短语,由“-”(破折号)标识。但问题是破折号也可以出现在要分隔的字段中。
所以我的逻辑是将“-”第一次出现之前的单词拆分为第一部分。
第一次出现“破折号”直到最后一次出现“破折号”为第二次的字符串 剩下的是第三部分
例如:
part[0]
USER 1
EFA-Thermal Analysis
0.25
part[1]
USER 2
EFA-Thermal Analysis
0.25
【问题讨论】:
-
"USER 1" 是一个组合词(出现在第一次出现“-”之前的任何内容都被视为字符串的第一部分
-
But problem being the Dash can also appear within the field to be separated.如果您可以假设恰好有 3 个字段,那么它是可以解决的。 -
每个短语中总是三个“部分”
-
那么,每个短语中都有这种模式吗?
-
是的,它永远是相同的模式