123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- package cn.cslg.pas.common.utils;
- import cn.cslg.pas.common.vo.OPS.PatentNoDetailVO;
- import org.springframework.stereotype.Component;
- import java.util.regex.Matcher;
- import java.util.regex.Pattern;
- @Component
- public class PatentNoUtil {
- public static PatentNoDetailVO getPatentNoDetail(String patentNo){
- PatentNoDetailVO patentNoDetailVO = new PatentNoDetailVO();
- Pattern PATENT_PATTERN = Pattern.compile("^([A-Za-z]{2})(\\d+)([A-Za-z\\d]+)$");
- Matcher matcher = PATENT_PATTERN.matcher(patentNo);
- if (matcher.find()) {
- String country = matcher.group(1);
- String num = matcher.group(2);
- String cc = matcher.group(3);
- patentNoDetailVO.setKind(cc);
- patentNoDetailVO.setNumber(num);
- patentNoDetailVO.setCc(country);
- return patentNoDetailVO;
- } else {
- throw new IllegalArgumentException("Invalid patent number format: " + patentNo);
- }
- }
- public static String formatApNo(String patentNo){
- Pattern patternEn = Pattern.compile("^[A-Za-z]{2}.*");
- Matcher matcher = patternEn.matcher(patentNo);
- if(!matcher.find()){
- patentNo ="CN"+patentNo;
- }
- String numbers = patentNo.replaceAll("[^\\d]", "");
- char secondLastChar = patentNo.charAt(patentNo.length() - 2);
- if(numbers.length()==13&&secondLastChar!='.'){
- StringBuilder stringBuilder =new StringBuilder(patentNo);
- stringBuilder.insert(patentNo.length() - 1,".");
- patentNo =stringBuilder.toString();
- }
- return patentNo;
- }
- }
|