我有一个字符串的列表
List<String> strList = Arrays.asList(new String[]{"pty_abddd_20220220_20220221","pty_hello_20220220_20220221","abc_gecko_20022023_21022023","pty_abddd_20220221_20220222"});
从这里我想提取字符串“pty”和数字开始的“20022023"。
我已经试过了,并得到他们分别与此代码
String date = "20220221";
List<String> testList = new ArrayList<>();
List<String> testList1 = new ArrayList<>();
List<String> strList = Arrays.asList(new String[]{"pty_abddd_20220220_20220221","pty_hello_20220220_20220221","abc_gecko_20022023_21022023","pty_abddd_20220221_20220222"});
for (String str : strList) {
if (str.contains("pty")) {
testList.add(str);
}
}
for (String ts : testList) {
Matcher matcher = Pattern.compile("\\d+").matcher(ts);
if(matcher.find()){
String str = matcher.group();
if(str.equals(date))
System.out.println(ts);
}
}
输出将是pty_abddd_20220221_20220222有没有一种方法可以将它们与正则表达式结合起来,请帮助谢谢
1条答案
按热度按时间r3i60tvu1#
这将提取以
pty
开头并以数字20022023
开头的字符串:但请注意,您的示例中的字符串都不是这样的。