Jelajahi Sumber

日本专利拆分代码

chendayu 2 tahun lalu
induk
melakukan
604587ff0d

+ 11 - 27
PAS/src/main/java/cn/cslg/pas/service/patentRightSplit/PatentRightSplitJPService.java

@@ -59,8 +59,8 @@ public class PatentRightSplitJPService implements PatentRightSplitService {
 
 
             //第2步 ↓:理出权要的类型(type为 1主权要还是 0附属权要)、权要之间的层级关系(每个权要的父级权要序号parentSort)
+            String regex2 = "請求項[0-9]+[〜]+[0-9]+";
             String regex1 = "請求項[0-9]+";
-            //String regex2 = "权利要求[0-9]+[至或~-]+[0-9]+";
             for (int i = 0; i < strs.length; i++) {
                 //创建权要对象装载当前权要
                 PatentRightContent patentRightContent = new PatentRightContent()
@@ -78,33 +78,17 @@ public class PatentRightSplitJPService implements PatentRightSplitService {
                     patentRightContent.setType(0);
 
                     Matcher matcher1 = Pattern.compile(regex1).matcher(strs[i].substring(strs[i].indexOf("】")));
-                    //Matcher matcher2 = Pattern.compile(regex2).matcher(strs[i]);
-//                    if (matcher2.find()) {  //"权利要求2~4"、权利要求"2-4"、权利要求"2至4"、权利要求"2或4"
-//                        String parentNum = matcher2.group().substring(matcher2.group().indexOf("权利要求") + 4);  //"2~4"、"2-4"、"2至4"、"2或4"
-//                        String[] parentNumStrs = new String[0];  //[2, 4]
-//                        if (parentNum.contains("~")) {
-//                            parentNumStrs = parentNum.split("~");
-//                        } else if (parentNum.contains("-")) {
-//                            parentNumStrs = parentNum.split("-");
-//                        } else if (parentNum.contains("至")) {
-//                            parentNumStrs = parentNum.split("至");
-//                        } else if (parentNum.contains("或")) {
-//                            parentNumStrs = parentNum.split("或");
-//                        }
-//
-//                        if (parentNum.contains("或")) {  //"2或4"
-//                            for (String parentNumStr : parentNumStrs) {
-//                                parentSorts.add(Integer.parseInt(parentNumStr) - 1);  //sort:{1, 3}
-//                            }
-//                        } else {  //"2~4"、"2-4"、"2至4"
-//                            for (int i1 = Integer.parseInt(parentNumStrs[0]); i1 <= Integer.parseInt(parentNumStrs[parentNumStrs.length - 1]); i1++) {
-//                                parentSorts.add(i1 - 1);  //sort:{1, 2, 3}
-//                            }
-//                        }
-//                    } else
-                    if (matcher1.find()) {  //"請求項4"
+                    Matcher matcher2 = Pattern.compile(regex2).matcher(strs[i].substring(strs[i].indexOf("】")));
+                    if (matcher2.find()) {  //"請求項2〜4"
+                        macherGroup = matcher2.group();
+                        String parentNum = macherGroup.substring(matcher2.group().indexOf("請求項") + 3);  //"2〜4"
+                        String[] parentNumStrs = parentNum.split("〜");  //[2, 4]
+                        for (int i1 = Integer.parseInt(parentNumStrs[0]); i1 <= Integer.parseInt(parentNumStrs[parentNumStrs.length - 1]); i1++) {
+                            parentSorts.add(i1 - 1);  //sort:{1, 2, 3}
+                        }
+                    } else if (matcher1.find()) {  //"請求項4"
                         macherGroup = matcher1.group();
-                        String parentNum = macherGroup.substring(macherGroup.indexOf("請求項") + 3);  //4
+                        String parentNum = macherGroup.substring(macherGroup.indexOf("請求項") + 3);  //"4"
                         int parentSort = Integer.parseInt(parentNum) - 1;
                         parentSorts.add(parentSort);  //sort:{3}
                     }