Browse Source

Merge remote-tracking branch 'origin/master'

xufei 3 years ago
parent
commit
5974bba2dc

+ 33 - 0
src/main/java/com/winhc/bigdata/udf/etl/CompanyZxrRestrictProposer.java

@@ -0,0 +1,33 @@
+package com.winhc.bigdata.udf.etl;
+
+import com.aliyun.odps.udf.UDF;
+import com.aliyun.odps.utils.StringUtils;
+import com.winhc.bigdata.bean.Category;
+
+import java.util.Arrays;
+import java.util.List;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+/**
+ * @author: XuJiakai
+ * 2021/8/23 17:22
+ * <p>
+ * 限高提取申请人
+ */
+public class CompanyZxrRestrictProposer extends UDF {
+
+    private final static Pattern pattern = Pattern.compile("立案执行申请人(?<name>.*?)申请执行你");
+
+    public List<String> evaluate(String content) {
+        if (StringUtils.isEmpty(content)) {
+            return null;
+        }
+        Matcher matcher = pattern.matcher(content);
+        if (matcher.matches()) {
+            String name = matcher.group("name");
+            return Arrays.asList(name.split("、"));
+        }
+        return null;
+    }
+}

+ 43 - 0
src/main/java/com/winhc/bigdata/udf/string/EfficaciousStr.java

@@ -0,0 +1,43 @@
+package com.winhc.bigdata.udf.string;
+
+import com.aliyun.odps.udf.UDF;
+import com.aliyun.odps.utils.StringUtils;
+
+import java.util.regex.Pattern;
+
+/**
+ * @author: XuJiakai
+ * 2021/8/23 15:17
+ */
+public class EfficaciousStr extends UDF {
+    private static final Pattern pattern = Pattern.compile("^[\\u4e00-\\u9fa50-9a-zA-Z ]+$");
+    private static final Pattern num_pat = Pattern.compile("^[0-9 ]+$");
+    private static final Pattern person_pat = Pattern.compile("^[\\u4e00-\\u9fa5a-zA-Z ]+$");
+    private static final Pattern eng_pat = Pattern.compile("^[a-zA-Z ]+$");
+
+    public static final String NAME = "公司名";
+    public static final String PERSON = "人名";
+    public static final String APP = "品牌";
+
+    public Boolean evaluate(String label, String str) {
+        if (StringUtils.isEmpty(str)) {
+            return false;
+        }
+        if ((NAME.equals(label) || PERSON.equals(label)) && num_pat.matcher(str).matches()) {
+            return false;
+        }
+        switch (label) {
+            case NAME:
+                return person_pat.matcher(str).matches();
+            case PERSON:
+                if(eng_pat.matcher(str).matches()){
+                    return false;
+                }
+                return person_pat.matcher(str).matches();
+            case APP:
+                return pattern.matcher(str).matches();
+            default:
+                throw new RuntimeException("label is not define," + label);
+        }
+    }
+}