我有以下字符串的字符串Java的正则表达式:解析与两个匹配子
任务BLABLA @ {}任务id “@ {} BLABLA.title”
,并希望从中提取所有的占位符它。
占位符是@ {taskId}和@ {BLABLA.title}。
我使用以下代码:
final Pattern pattern = Pattern.compile(".*(\\@\\{.*?\\}).*");
final Matcher matcher = pattern.matcher(this.text);
while (matcher.find())
{
final String placeholder = matcher.group(1);
this.placeholders.add(placeholder);
}
的问题是,在与一个以上的占位符线(如上面示出)检测到仅第一个占位符。
又如:
任务BLABLA @ {}任务id “@ {} BLABLA.title”{启动@ {}的startDateTime
任务BLABLA2 “文本”{分配RBLABLA2努力@ {BLABLA2。努力} }}
在本文中,上面的代码检测
- @ {BLABLA.title}
- @ {的startDateTime}
- @ {BLABLA2.effort}
如果删除@ {BLABLA.title},然后@ {的TaskID}被检测。
我应该如何修改代码,以便在上例中检测到所有占位符(@ {taskId},@ {BLABLA.title},@ {startDateTime},@ {BLABLA2.effort})?