and or join
来源:互联网 发布:网络借贷需要什么条件 编辑:程序博客网 时间:2024/05/20 17:17
public String getValueByExpress(List<RegularExpress> express, String content) {
String value = "";
if (express.size() == 0 || null == express || content == null
|| "".equals(content)) {
}// 当执行的正则表达式只有一条语句时根据正则得到匹配的结果
else if (express.size() == 1) {
RegularExpress re = express.get(0);// 得到该节点的信息
String regex = re.getRegex();// 得到正则表达式
int groupNo = re.getGroupNo();// 得到regex用到的组号
Pattern p = Pattern.compile(regex, Pattern.CASE_INSENSITIVE);// 将给定的正则表达式编译到模式中
Matcher m = p.matcher(content);// 创建匹配给定输入与此模式的匹配器
if (m.find()) {
// 如果找到了符合条件的内容,返回匹配的内容
value = m.group(groupNo);
}
} else {// 当执行的正则表达式有多条的时候根据每条正则表达式得到匹配的结果
RegularExpress re = express.get(0);
String run = re.getRun();// 取得该regex的运行方式
// 如果运行方式是join,调用join方式的逻辑
if ("join".equalsIgnoreCase(run)) {
value = getJoinValue(express, content);
}// 如果运行方式为and,调用and方式的逻辑
else if ("and".equalsIgnoreCase(run)) {
value = getAndValue(express, content);
}// 如果运行方式为or,调用or方式的逻辑
else if ("or".equalsIgnoreCase(run)) {
value = getOrValue(express, content);
}
}
return value;
}
// 使用join方式时根据正则得到匹配的结果
public String getJoinValue(List<RegularExpress> express, String content) {
String result = "";
for (RegularExpress re : express) {
String regex = re.getRegex();
int groupNo = re.getGroupNo();
Pattern p = Pattern.compile(regex, Pattern.CASE_INSENSITIVE);
Matcher m = p.matcher(content);
if (m.find()) {
result += m.group(groupNo);
}
}
return result;
}
// 使用or方式时根据正则得到匹配的结果
public String getOrValue(List<RegularExpress> express, String content) {
String result = "";
for (RegularExpress re : express) {
String regex = re.getRegex();
int groupNo = re.getGroupNo();
Pattern p = Pattern.compile(regex, Pattern.CASE_INSENSITIVE);
Matcher m = p.matcher(content);
if (m.find()) {
result = m.group(groupNo);
break;
}
}
return result;
}
// 使用and方式时根据正则得到匹配的结果
public String getAndValue(List<RegularExpress> express, String content) {
String result = "";
RegularExpress re = express.get(0);
String regex = re.getRegex();
int groupNo = re.getGroupNo();
Pattern p = Pattern.compile(regex, Pattern.CASE_INSENSITIVE);
Matcher m = p.matcher(content);
String subContent = "";
if (m.find()) {
subContent = m.group(groupNo);
re = express.get(1);
regex = re.getRegex();
groupNo = re.getGroupNo();
String run = re.getRun();
// 又遇到and匹配方式的语句根据正则匹配结果
if ("and".equalsIgnoreCase(run)) {
for (int i = 1; i < express.size(); i++) {
re = express.get(i);
regex = re.getRegex();
groupNo = re.getGroupNo();
p = Pattern.compile(regex, Pattern.CASE_INSENSITIVE);
m = p.matcher(subContent);
if (m.find()) {
subContent = m.group(groupNo);
} else {
return "";
}
}
result = subContent;
}// 遇到or匹配方式的语句根据正则匹配结果
else if ("or".equalsIgnoreCase(run)) {
for (int i = 1; i < express.size(); i++) {
re = express.get(i);
regex = re.getRegex();
groupNo = re.getGroupNo();
p = Pattern.compile(regex, Pattern.CASE_INSENSITIVE);
m = p.matcher(subContent);
if (m.find()) {
result = m.group(groupNo);
break;
}
}
}
} else {
result = subContent;
}
return result;
}
- and or join
- SubQuery or Join?
- and or
- AND & OR
- and ,or 和and-or
- python and or and-or
- join and PK where and
- join and union
- Mongodb: Array and Join
- paste and join (Linux)
- Join and Where
- join on and
- Linq Join and GroupJoin.
- python join and split
- TeraSort and Join
- Merge, join, and concatenate
- INNER JOIN, LEFT JOIN , RIGHT JOIN, FULL JOIN, Update inner join, Delete inner join, on And
- merge semi join and merge anti join
- 我们的开始和结束
- 按ctrl+alt+del弹出taskmgr.exe窗口
- 2011 年主流的七大 IT 技术预测
- 我与金旭亮老师的交流
- Ant 学习笔记(一)
- and or join
- RegularExpress 正则
- 为了积分
- dynamic_cast 用法
- 做项目的时候千万不能懒!
- 10天改变一生
- C经典
- 新手上路
- 郁闷的课设