vue版本上线
This commit is contained in:
154
jshERP-boot/src/main/java/com/jsh/erp/utils/RegExpTools.java
Normal file
154
jshERP-boot/src/main/java/com/jsh/erp/utils/RegExpTools.java
Normal file
@@ -0,0 +1,154 @@
|
||||
package com.jsh.erp.utils;
|
||||
|
||||
import org.springframework.util.Assert;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* Created by Adm on 2015/12/14.
|
||||
*
|
||||
* @author yubiao
|
||||
* <p/>
|
||||
* mysql匹配正则表达式
|
||||
*/
|
||||
public class RegExpTools {
|
||||
/**
|
||||
* @param search 模糊匹配字符串数组
|
||||
*/
|
||||
public static String regexp(List<String> search) {
|
||||
if (search == null || search.isEmpty())
|
||||
return null;
|
||||
String regexp = "";
|
||||
for (String s : search) {
|
||||
if (!regexp.isEmpty()) {
|
||||
regexp = regexp + "|";
|
||||
}
|
||||
regexp = regexp + ".*";
|
||||
regexp = regexp + s.replaceAll("\\.", "\\\\.");
|
||||
regexp = regexp + ".*";
|
||||
}
|
||||
return regexp;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param key json字段key
|
||||
* @param search 模糊匹配字符串数组
|
||||
* json的mysql匹配正则表达式
|
||||
*/
|
||||
public static String regexp(String key, List<String> search) {
|
||||
if (search == null || search.isEmpty())
|
||||
return null;
|
||||
StringBuilder sb = new StringBuilder();
|
||||
for (String s : search) {
|
||||
if (sb.length() == 0) {
|
||||
sb.append(".*\\\"").append(key).append("\\\":\\\"[a-zA-Z0-9]*(");
|
||||
} else {
|
||||
sb.append("|");
|
||||
}
|
||||
sb.append(s);
|
||||
}
|
||||
sb.append(")[a-zA-Z0-9]*\\\".*");
|
||||
return sb.toString();
|
||||
}
|
||||
|
||||
public static class RegExp {
|
||||
public static final String ANY = ".*";
|
||||
public static final String QUOTE = "\\\"";
|
||||
public static final String LFT_PAREN = "(";
|
||||
public static final String RHT_PAREN = ")";
|
||||
public static final String COLON = ":";
|
||||
public static final String OR = "|";
|
||||
|
||||
private final StringBuilder builder = new StringBuilder();
|
||||
|
||||
public RegExp any() {
|
||||
builder.append(ANY);
|
||||
return this;
|
||||
}
|
||||
|
||||
public RegExp lftParen() {
|
||||
builder.append(LFT_PAREN);
|
||||
return this;
|
||||
}
|
||||
|
||||
public RegExp rhtParen() {
|
||||
builder.append(RHT_PAREN);
|
||||
return this;
|
||||
}
|
||||
|
||||
public RegExp colon() {
|
||||
builder.append(COLON);
|
||||
return this;
|
||||
|
||||
}
|
||||
|
||||
public RegExp quote() {
|
||||
builder.append(QUOTE);
|
||||
return this;
|
||||
}
|
||||
|
||||
public RegExp quote(String str) {
|
||||
Assert.notNull(str, "str为空");
|
||||
builder.append(QUOTE).append(str).append(QUOTE);
|
||||
return this;
|
||||
}
|
||||
|
||||
public RegExp value(String str) {
|
||||
Assert.notNull(str, "str为空");
|
||||
builder.append(str);
|
||||
return this;
|
||||
}
|
||||
|
||||
public RegExp or() {
|
||||
builder.append(OR);
|
||||
return this;
|
||||
}
|
||||
|
||||
public RegExp or(List<String> values) {
|
||||
Assert.notEmpty(values, "values必须非空");
|
||||
lftParen();
|
||||
boolean first = true;
|
||||
for (String value : values) {
|
||||
if (first) {
|
||||
builder.append(value);
|
||||
first = false;
|
||||
} else {
|
||||
builder.append(OR).append(value);
|
||||
}
|
||||
}
|
||||
rhtParen();
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return builder.toString();
|
||||
}
|
||||
|
||||
public static void main(String[] args) {
|
||||
List<String> values = new ArrayList<String>();
|
||||
|
||||
values.add("310");
|
||||
values.add(String.valueOf(2));
|
||||
values.add(String.valueOf(3));
|
||||
|
||||
RegExp exp = new RegExp();
|
||||
|
||||
exp.any();
|
||||
exp.quote("fullKbNum").colon()
|
||||
.quote()
|
||||
.value("[a-zA-Z0-9]*").or(values).value("[a-zA-Z0-9]*")
|
||||
.quote();
|
||||
exp.or();
|
||||
exp.quote("gbId[a-f0-9-]{36}").colon()
|
||||
.quote()
|
||||
.value("[0-9]*").or(values).value("[0-9]*")
|
||||
.quote();
|
||||
exp.any();
|
||||
|
||||
System.out.println(exp);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user