From 0838434d640d630af1efd806c3a7b8a055ab1ba4 Mon Sep 17 00:00:00 2001 From: emm Date: Sat, 19 Oct 2024 14:47:50 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E8=BF=87=E6=BB=A4=E9=AB=98?= =?UTF-8?q?=E5=80=8D=E7=8E=87=E8=8A=82=E7=82=B9=E7=9A=84bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../lionwebsite/Service/LocalServiceImpl.java | 20 +++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/lion/lionwebsite/Service/LocalServiceImpl.java b/src/main/java/com/lion/lionwebsite/Service/LocalServiceImpl.java index a661535..9e601c8 100644 --- a/src/main/java/com/lion/lionwebsite/Service/LocalServiceImpl.java +++ b/src/main/java/com/lion/lionwebsite/Service/LocalServiceImpl.java @@ -23,6 +23,8 @@ import java.nio.file.attribute.BasicFileAttributes; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; import java.util.*; +import java.util.regex.Matcher; +import java.util.regex.Pattern; import static java.nio.file.FileVisitResult.CONTINUE; @@ -93,13 +95,23 @@ public class LocalServiceImpl{ String DouNaiV2rayRaw = Get(DouNaiV2ray).getFirst(); String[] v2rayPlain = new String(Base64.getDecoder().decode(DouNaiV2rayRaw)).split("\n"); StringBuilder stringBuilder = new StringBuilder(); + Pattern pattern = Pattern.compile("-?\\d+(\\.\\d+)?"); + //过滤高倍率节点 for(String node: v2rayPlain){ String name = URLDecoder.decode(node.split("#")[1], StandardCharsets.UTF_8); - if(name.startsWith("⛅") && name.contains("流量")){ - float ratio = Float.parseFloat(name.substring(name.indexOf("(") + 1, name.indexOf(")")).replace("倍流量", "")); - if(ratio <= 1) - stringBuilder.append(node).append("\n"); + if(name.contains("流量")){ + Matcher matcher = pattern.matcher(name.substring(name.indexOf("(") + 1, name.indexOf(")"))); + + if (matcher.find()) { + // 将匹配到的数字添加到列表中 + float ratio = Float.parseFloat(matcher.group()); + if(ratio <= 1) { + stringBuilder.append(node).append("\n"); + continue; + } + } + stringBuilder.append(node).append("\n"); } else{ stringBuilder.append(node).append("\n");