Java RegEx:从字符串中提取多个子字符串

时间:2016-09-11 22:35:39

标签: java regex substring

我想从某些标签中包含的字符串中提取所有子字符串。例如,如果我有一个输入字符串,在" *"中包含一些子字符串。标记:

I contain two terms to extract: *first term* and *second term*

我想得到的是两个子字符串"第一个术语"和"第二学期"。 我尝试使用以下代码:

List<String> matches = new ArrayList<>();
Matcher m = Pattern.compile(".*\\*(.*)\\*.*").matcher(inputString);
while(m.find()){
   matches.add(m.group(1));
}

但这给了我不正确的结果。我阅读了有关group方法的API文档,但说实话,我并不完全理解它的含义和工作方式。如果有人能告诉我在这里收集所有想要的子字符串的最佳方法,我会感激不尽。

谢谢!

1 个答案:

答案 0 :(得分:1)

尝试以下表达式:

\\*([^\\*]+)\\*

所需的子字符串将位于第一组中。