如何在 stream() api 中获取 id、name 和 table
how to get id, name and table in stream() api
我有如下字符串:
@AB{id} in (select @AC{id} from @AC{table} where @AC{name}='Kavita')
我需要获取花括号内的所有属性,即 id、table、名称等
有人可以建议怎么做吗?谢谢..
您应该使用这样的正则表达式:\{(\w+)\}
检测花括号之间 letters/digits/underscores 的非空序列,或者 \{([A-Za-z]+)\}
如果属性包含 只有个英文字母。
然后从Java9开始,classMatcher
有一个方法results
返回Stream<MatchResult>
并且属性可以从group(1)
提到的正则表达式:
Pattern pat = Pattern.compile("\{(\w+)\}");
String code = "@AB{id} in (select @AC{id} from @AC{table} where @AC{name}='Kavita')";
List<String> parts = pat.matcher(code)
.results().map(mr -> mr.group(1))
.collect(Collectors.toList());
System.out.println(parts);
输出:
[id, id, table, name]
我有如下字符串:
@AB{id} in (select @AC{id} from @AC{table} where @AC{name}='Kavita')
我需要获取花括号内的所有属性,即 id、table、名称等
有人可以建议怎么做吗?谢谢..
您应该使用这样的正则表达式:\{(\w+)\}
检测花括号之间 letters/digits/underscores 的非空序列,或者 \{([A-Za-z]+)\}
如果属性包含 只有个英文字母。
然后从Java9开始,classMatcher
有一个方法results
返回Stream<MatchResult>
并且属性可以从group(1)
提到的正则表达式:
Pattern pat = Pattern.compile("\{(\w+)\}");
String code = "@AB{id} in (select @AC{id} from @AC{table} where @AC{name}='Kavita')";
List<String> parts = pat.matcher(code)
.results().map(mr -> mr.group(1))
.collect(Collectors.toList());
System.out.println(parts);
输出:
[id, id, table, name]