我面临两个逗号问题: 1 - 我想用相同的模式搜索DE 99,SF 99和DE 99 SF 99。请注意唯一的区别就是逗号。我有一个数据元素编号(DE)和其子域编号(SF)的输入。 SF不是总是存在,但我设法在下面的代码中处理。问题是有些时候DE和SF会被“”分隔开,而其他时候则不会。 2 - 其他问题,货币值或带有“,”的任何值在逗号后错过。我放在我正在做的和一些测试案例的例子下面。请注意,该值可以是数字或字母数字。正则表达式 - 用逗号分隔
Found and read correctly the value
wholeLine: DE 3, SF 1 = 20
OUTPUT: DE 3, SF 1 = 20
Found and read correctly the value
wholeLine: DE 26 = 6538
OUTPUT: DE 26 = 6538
Found but read wrongly the value because only reads before “,”
wholeLine: DE 4 = 3,727
OUTPUT: DE 4 = 3
Not Found
wholeLine: DE 63 SF 2 = xyz
Pattern patternDE = Pattern.compile("DE \\d+(, SF \\d+)* = \\w+");
Matcher matcherDE = patternDE.matcher(wholeLine);
while (matcherDE.find()){
String wholeThing = matcherDE.group();
System.out.println(wholeThing);
}