whycxzp
2023-06-05 69a9145abc3c754e1621613fde2cd94f4e97938e
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
package com.whyc.constant;
 
import java.util.regex.Pattern;
 
/**
 * 物料命名规范正则
 */
public enum MaterialNamingStandard {
    RES_0311_0312("电阻","封装形式-电阻类型,例如:贴片电阻-通用","[\\u4E00-\\u9FA5]*内阻-[\\u4E00-\\u9FA5]*","电阻值±精度_功率_温度系数_封装形式(贴片),例如:1K±1%_1/8W_±100ppm_R0805","[0-9]+[a-zA-Z]+±[0-9]+%_[0-9]+[/0-9]*[A-Z]_±[0-9]+[a-z]+[_a-zA-Z0-9]*"),
    CAPACITOR_TP_0301("贴片电容","封装形式-电容类型,例如:贴片电容-陶瓷","[\\u4E00-\\u9FA5]*电容-[\\u4E00-\\u9FA5]*","容值±误差_电压 材质_封装,例如:10nF±10%_50V X7R_C0805","[0-9]+[a-zA-Z]+±[0-9]+%_[0-9]+[a-zA-Z]*[vV][\\s]+[a-zA-Z0-9]+_[_a-zA-Z0-9]*"),
    CAPACITOR_CJ_0301_0302("插件电容-无极","封装形式-电容类型,例如:插件电容-CBB","[\\u4E00-\\u9FA5]*电容-[\\u4E00-\\u9FA5]*","容值/电压±误差_材质_脚距*宽度(mm),例如:10nF/1000V±10%_CBB_7.62*5.08","[0-9]+[a-zA-Z]+/[0-9]+[a-zA-Z]*[vV]±[0-9]+%_[a-zA-Z0-9]+_[0-9]*.*[0-9]*\\*[0-9]*.*[0-9]*"),
    CAPACITOR_DJ_0301_0302("插件电容-电解","封装形式-电容类型,例如:插件电容-电解","[\\u4E00-\\u9FA5]*电容-[\\u4E00-\\u9FA5]*","容值/电压±误差_温度℃_系列-封装(数值x数值)_寿命,例如:1000uF/63V±20%_105℃_CD294BW-35x50_2000H","[0-9]+[a-zA-Z]+/[0-9]+[a-zA-Z]*[vV]±[0-9]+%_[0-9]+℃_[a-zA-Z0-9]+-[0-9]+x[0-9]+_[0-9]+H"),
    DIODE_WY_0321_0322("二极管-稳压","封装形式-二极管类型,例如:插件二极管-稳压","[\\u4E00-\\u9FA5]*二极管-稳压","型号编码_电压功率_封装形式,例如:1N4742_12V1W_DO-41",all()+"_"+num()+lettersLowCase0()+"V"+num()+lettersLowCase0()+"W_"+allWithSymbol1()),
    DIODE_FWY_0321_0322("二极管-非稳压","封装形式-二极管类型,例如:插件二极管-整流","[\\u4E00-\\u9FA5]*二极管-[\\u4E00-\\u9FA5]+","型号编码_电流电压_封装形式,例如:1N4007_1A1000V_DO-41",all()+"_"+num()+lettersLowCase0()+"A"+num()+lettersLowCase0()+"V_"+allWithZhCN()),
    DIODE_TP_0321("贴片-发光二极管","封装形式-二极管类型,例如:贴片-发光二极管","贴片-发光二极管","LED_材质_颜色_封装,例如:LED_Gap_NG_0603","LED_"+letters()+"_"+lettersUpCase()+"_"+allWithZhCN()),
    DIODE_CJ_0322("插件-发光二极管","封装形式-二极管类型,例如:插件-发光二极管","插件-发光二极管","LED_材质_颜色_尺寸_形状 (其他说明),例如:LED_Gap_NG_03D_圆形  默认普通亮度","LED_"+letters()+"_"+lettersUpCase()+"_"+all()+"_"+zhCN()+"[\\s]*"+allWithZhCN()),
    TRIODE_0331_0332("三极管|晶体管模块","封装形式-器件类型,例如:插件三极管-Mosfet","([\\u4E00-\\u9FA5]*三极管|晶体管模块)-"+allWithZhCN(),"型号编码-电压电流-封装形式,例如:S8550LT1_0.5A40V_TO-92",all()+"_"+num()+lettersLowCase0()+"A"+num()+lettersLowCase0()+"V_"+allWithSymbol1()),
    IC_CHIP_0341_0342("集成电路 IC芯片","集成电路-器件类型,例如:集成电路-MCU",zhCN0()+"集成电路-"+allWithZhCN1(),"参照品牌商定义_封装,例如:SST26VF064B-104I/SM_SOIJ5.08",allWithSymbol1()+"_"+allWithSymbol1()),
    DCDC_0217("DCDC模块","封装形式-器件类型,例如:插件-电源模块",zhCN()+"-电源模块","参照品牌商定义_封装,例如:B0505S-2WR2_SIP7",allWithSymbol1()+"_"+allWithSymbol1()),
    INDUCTANCE_CJ_0351("插件电感","封装形式-外形描述,例如:插件电感-棒型","插件电感-"+zhCN(),"感值±误差/电流_直径*高度/脚距,例如:10uH±5%/2.3A_D5*20/6.5",num()+lettersLowCase0()+"H±"+num()+"%/"+num()+lettersLowCase0()+"A_"+lettersUpCaseLimit1()+num()+"\\*"+num()+"/"+num()),
    INDUCTANCE_TP_DG_0351("贴片-电感","封装形式-外形描述,例如:贴片-电感","贴片-"+zhCN(),"感值±误差/电流_封装,例如:10uH±5%/0.5A_L0805",num()+lettersLowCase0()+"H±"+num()+"%/"+num()+lettersLowCase0()+"A_"+allWithSymbol1()),
    INDUCTANCE_TP_CZ_0351("贴片-磁珠","封装形式-外形描述,例如:贴片-磁珠","贴片-"+zhCN(),"电阻值±误差/电流_标称频率_封装,例如:600R±25%/2A_100MHz_L0805",num()+letters0()+"R±"+num()+"%/"+num()+lettersLowCase0()+"A_"+num()+lettersLimit1()+"Hz_"+allWithSymbol1()),
    INDUCTANCE_DZ_0351("定制电感","机型-功能,例如:FEVC6030B-输入共模电感",all()+"-"+zhCN(),"电感图号_磁材*数量_感量,例如:(图号)_NPF185026X2",num()+letters0()+"R±"+num()+"%/"+num()+lettersLowCase0()+"A_"+num()+lettersLimit1()+"Hz_"+allWithSymbol1()),
    TRANSFORMER_BYQ_0351("变压器","封装形式-类型,例如:贴片-网络变压器",zhCN()+"-"+zhCN(),"厂家型号_封装,例如:H1102NL_TS-SOP16",allWithSymbol1()+"_"+allWithSymbol1()),
    TRANSFORMER_BYQ_DZ_0351("定制变压器","机型-功能,例如:4815D-电源板变压器",all()+"-"+zhCN(),"磁材_变压器图号,例如:H1102NL_TS-SOP16",allWithSymbol1()+"_"+allWithSymbol1()),
    FUSE_0381("保险","封装形式-类型,例如:插件保险-玻璃丝",zhCN()+"-"+allWithZhCN1(),"外形-电流电压,例如:圆形3.6*10-T0.5A250V",allWithZhCN1()+"-[TFV]"+num()+lettersLowCase0()+"A"+num()+lettersLowCase0()+"V"),
    OPTOCOUPLER_0363("光耦","封装形式-类型,例如:插件光耦-线性",zhCN()+"-"+zhCN(),"厂家型号_封装,例如:HCNR201_DIP-8",allWithSymbol1()+"_"+allWithSymbol1()),
    RELAY_0362("继电器","封装形式-继电器类型,例如:插件-继电器",allWithZhCN1()+"-"+zhCN0()+"(继电器|接触器)","厂家型号-线包电压_触点电流电压_外形描述,HF7FF/012-1HTSF_12V_10A28V_22*16*16",allWithSymbol1()+"_"+num()+lettersLowCase0()+"V_"+num()+lettersLowCase0()+"A"+num()+lettersLowCase0()+"V_"+num()+"\\*"+num()+"\\*"+num()),
    KEY_SWITCH_0382("按键开关","封装形式-开关名称,例如:插件-轻触按键",allWithZhCN1()+"-"+zhCN(),"参照供应商型号_电压电流(非贴片)_外形描述(贴片填写)_弯脚(插件填写),电压电流、外形、依据实际用途选择性填写",allWithSymbol1()+"_"+allWithZhCN1()),
    RADIATOR_0103("散热器","散热器-机型,例如:散热器-60010","散热器-"+allWithSymbol1(),"形状代码-长宽高,例如:FBO60010CT-301_180*420*83",allWithSymbol1()+"_"+num()+"\\*"+num()+"\\*"+num()),
    RADIATOR_TY_0103("散热器-通用","散热片-通用","散热片-通用","型材外形_尺寸_针脚数,例如:H型散热器_23.5*26*25_2",allWithZhCN1()+"_"+num()+"\\*"+num()+"\\*"+num()+"_"+num()),
    CONNECTOR_PCB_0372("连接器-PCB用","外形描述-针脚类型,例如:贴片端子-弯针",zhCN()+"-"+zhCN(),"厂家型号_脚距_载流量,例如:XHB-4AWB_2.5_3A",allWithSymbol1()+"_"+num()+"_"+num()+lettersLowCase0()+"A"),
    CONNECTOR_ASSEMBLED_0372("连接器-装配用","端子-连接器名称,例如:端子-电缆接头","端子-"+zhCN(),"厂家型号_载流量,例如:XHB-4AWB_3A",allWithSymbol1()+"_"+num()+lettersLowCase0()+"A"),
    CRYSTAL_OSCILLATOR_0361("晶振","[封装形式]晶振",zhCN()+"晶振","频率_温度系数_负载电容_封装,例如:8MHz_15ppm_22pF_5032-5*3.2*0.7",num()+letters0()+"Hz_"+num()+letters()+"_"+num()+letters()+"_"+allWithSymbol1()),
    SENSOR_0214("传感器","传感器-类型,例如:传感器-电流霍尔","传感器-"+zhCN(),"规格型号_输入-输出,例如:TBC100E-D12V-4V",allWithSymbol1()+"-"+allWithSymbol1()+"-"+allWithSymbol1()),
    DISPLAYER("显示器","显示屏-类型,例如:显示屏-单色总线液晶屏","显示器-"+allWithZhCN1(),"规格型号_分辨率_工作电压_显示接口,例如:DMG12864F-9_128*64_3V_并口",allWithSymbol1()+"_"+num()+"\\*"+num()+"_"+num()+lettersLowCase0()+"V_"+zhCN()),
    CIRCUIT_MODEL_0343("电路模块","集成模块-模块功能类型,例如:集成模块-wifi通讯","集成模块-"+allWithZhCN1(),"模块完整型号(需要尾缀)_封装形式_备注,例如:URS-WIFI232-C_贴片型_外带天线",allWithSymbol1()+"_"+zhCN()+"_"+allWithZhCN1()),
    BATTERY_OR_ELSE_0391("电池或其他","电池-电池材质,例如:电池-锂二氧化锰","电池-"+zhCN(),"厂家型号_电压&安时_外形尺寸,例如:CR1220_3V40mAH_D12.5*2",allWithSymbol1()+"_"+num()+lettersLowCase0()+"V"+num()+lettersLowCase0()+"AH_[DF]"+num()+"\\*"+num()),
    FAN_0212("风机","风机-工作电压,例如:风机-48V","风机-"+num()+lettersLowCase0()+"V","厂家规格_工作电压电流_外形尺寸,例如:AD1248HB-F92GP_48V0.52A_120*120*38",allWithSymbol1()+"_"+num()+lettersLowCase0()+"V"+num()+lettersLowCase0()+"A_"+num()+"\\*"+num()+"\\*"+num()),
    ANTENNAE_SPECIAL_OR_ELSE_0226("天线","天线-外形,例如:天线_WiFi","天线[-_]"+allWithZhCN1(),"厂家型号_增益_额定频段_外形_丝&针、孔_外形尺寸,例如:",allWithZhCN1()+"_"+num()+letters0()+"Hz_"+zhCN()+"_"+lettersUpCaseLimit1()+num()+"\\*"+num()),
    ANTENNAE_PEDESTAL_0372("天线座","天线座",allWithSymbol0()+"天线座"+allWithZhCN(),"厂家型号_封装,例如:IPEX-50Ohm(20279-001 E-01)_J-IPEX",allWithSymbol1()+"_"+allWithSymbol1()),
    SWITCHING_POWER_0213("开关电源","模块-开关电源","模块-开关电源","厂家型号_输入电压范围,例如:HF75W-SC-48_86-264Vac",allWithSymbol1()+"_"+num()+"-"+num()+lettersLowCase0()+"V"+letters0()),
    ;
 
 
    MaterialNamingStandard(String name, String nameRegexDesc, String nameRegex, String modelRegexDesc, String modelRegex) {
        this.name = name;
        this.nameRegexDesc = nameRegexDesc;
        this.nameRegex = nameRegex;
        this.modelRegexDesc = modelRegexDesc;
        this.modelRegex = modelRegex;
    }
 
    private String name;
    private String nameRegexDesc;
    private String nameRegex;
    private String modelRegexDesc;
    private String modelRegex;
 
    public String getName() {
        return name;
    }
 
    public String getNameRegex() {
        return nameRegex;
    }
 
    public String getModelRegex() {
        return modelRegex;
    }
 
    public String getNameRegexDesc() {
        return nameRegexDesc;
    }
 
    public String getModelRegexDesc() {
        return modelRegexDesc;
    }
 
    public static String all(){
        return "[a-zA-Z0-9]+";
    }
 
    public static String zhCN(){
        return "[\\u4E00-\\u9FA5]+";
    }
 
    public static String zhCN0(){
        return "[\\u4E00-\\u9FA5]*";
    }
 
    public static String allWithZhCN(){
        return "[a-zA-Z0-9_()/.\\s\\*\\-\\u4E00-\\u9FA5]*";
    }
 
    public static String allWithZhCN1(){
        return "[a-zA-Z0-9_()/.\\s\\*\\-\\u4E00-\\u9FA5]+";
    }
 
    public static String allWithSymbol0(){
        return "[a-zA-Z0-9_()/.\\s\\*\\-]*";
    }
 
    public static String allWithSymbol1(){
        return "[a-zA-Z0-9_()/.\\s\\*\\-]+";
    }
 
    public static String num(){
        return "[0-9.]+";
    }
 
    public static String letters(){
        return "[a-zA-Z]+";
    }
 
    public static String letters0(){
        return "[a-zA-Z]*";
    }
 
    public static String lettersLimit1(){
        return "[a-zA-Z]";
    }
 
    public static String lettersLowCaseLimit1(){
        return "[a-z]";
    }
 
    public static String lettersLowCase0(){
        return "[a-z]*";
    }
 
    public static String lettersLowCase1(){
        return "[a-z]+";
    }
 
    public static String lettersUpCase(){
        return "[A-Z]+";
    }
 
    public static String lettersUpCaseLimit1(){
        return "[A-Z]";
    }
 
    public static void main(String[] args) {
//    INDUCTANCE_TP_CZ_0351("贴片-磁珠","封装形式-外形描述,例如:贴片-磁珠","贴片-"+zhCN(),"电阻值±误差/电流_标称频率_封装,例如:600R±25%/2A_100MHz_L0805",
//    num()+lettersLowCase0()+"R±"+num()+"%/"+num()+lettersLowCase0()+"A_"+num()+letters()+"Hz_"+allWithSymbol1()),
//        String lowCase = "贴片晶振";
//        System.out.println(lowCase.toUpperCase());
        String content = "HF7FF/012-1HTSF_12V_A28V_22*16*16";
        String pattern = RELAY_0362.getModelRegex();
        //String pattern = "([\\u4E00-\\u9FA5]*三极管|晶体管模块)-[a-zA-Z0-9_\\-\\u4E00-\\u9FA5]*";
        boolean isMatch = Pattern.matches(pattern, content);
        System.out.println(isMatch);
    }
}