我的身体有一条前景信息。我需要获得某些模式的字符串 S15345,S15366 等。
我如何在java中实现这一目标?
我尝试过如下,
String array[] = body.split("[S[0-9]]");
答案 0 :(得分:3)
在这种情况下,更好的方法是将模式匹配器与此正则表达式S\d{5}
一起使用,或者如果模式可以包含一个或多个数字,则可以使用S\d+
代替
String body = ...
Pattern pattern = Pattern.compile("S\\d{5}");
Matcher matcher = pattern.matcher(body);
List<String> result = new ArrayList<>();
while (matcher.find()){
result.add(matcher.find());
}
如果您使用的是Java 9+,则可以使用:
String body = ...
List<String> result = Pattern.compile("S\\d{5}")
.matcher(body)
.results()
.map(MatchResult::group)
.collect(Collectors.toList());