Closed. This question needs details or clarity。它当前不接受答案。
想改善这个问题吗?添加详细信息并通过editing this post阐明问题。
2年前关闭。
我想在具有以下格式的edi文件中获取值
我想在第一种情况下使用值U,该值位于
确切地说,要从字符串中提取单个字符,该字符将位于
但是,如果在您想要的字母前总是有相同数量的
想改善这个问题吗?添加详细信息并通过editing this post阐明问题。
2年前关闭。
我想在具有以下格式的edi文件中获取值
\nRJCK3:0*20180105*U*127.35
\nRJCK3:0*20180105*B*127.35
我想在第一种情况下使用值U,该值位于
RJC*K3
之后的第二和第三颗星之间,并在第二个字符串中使用B确切地说,要从字符串中提取单个字符,该字符将位于
*
(静态值)的第二和第三星号(RJC*K3
)之间。 最佳答案
您可以使用经典的Pattern matching
方式:
String str1 = "\\nRJC*K3:0*20180105*U*127.35";
Matcher m = Pattern.compile("RJC\\*K3.*\\*(\\w)\\*.*").matcher(str1);
String res1 = m.find() ? m.group(1) : "";
System.out.println(res1); // U
但是,如果在您想要的字母前总是有相同数量的
*
,则您可以轻松拆分cn并占据第三部分:String str2 = "\\nRJC*K3:0*20180105*G*127.35";
String res2 = str2.split("\\*")[3];
System.out.println(res2); // G
关于java - EDI文件的正则表达式,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48111632/
10-08 22:23