Use this regex:
Pattern pattern = Pattern.compile("Class: (.+?)
From: (.+?) To: (.+?)
Occures: (.+?) In: (.+?) (.+?)");
Matcher matcher = pattern.matcher(yourInputString);
if (matcher.find())
{
String data1 = matcher.group(1);
String data2 = matcher.group(2);
String data3 = matcher.group(3);
String data4 = matcher.group(4);
String data5 = matcher.group(5);
String data6 = matcher.group(6);
} else
{
// String didn t match the specified format
}
解释:
.+?
will match any character for undefined times, but non-greedy.
()
, using brackets will create a group. A group is given an index starting by 1 (since group 0 is the entire match)
因此,<代码>(+?)将产生任何性质的群体。
而匹配者所做的是,正在寻找整个模式,在投入体中占据一定位置。 但是,既然你指明了这一形式,我们就确切知道,你的整个努力将如何看待。 唯一需要做的是复制格式并替换你希望以“<>tthing<>>>(+?
)提取的数据。
之后,配对人将设法找到这一模式(通过<条码>matcher.find(),请他们看一至六组的内容。