前言
最近在做运维自动化的一些研究,刚好项目大部分服务器都是使用的iptables管理防火墙规则,一台一台登录配置很是繁琐,服务器规则看起来也不直观,所有就想用java做iptables可视化管理;这里只是对iptables规则一个简单的格式化,后面在一步步加到运维平台中。
代码
package com.ssh.run.utlis;
import java.util.ArrayList;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class PatternUtil {
public static List<String> getRules(String rule) {
// 定义正则表达式(与上一个示例相同)
//String regex = "(\\d+|\\w+|-+|\\*)\\s+";
//String regex = "(\\d+|\\w+|\\*|.*?)\\s+";
String regex = "(.*?)\\s+|.*?$";
// 创建Pattern对象并编译正则表达式
Pattern pattern = Pattern.compile(regex);
// 创建Matcher对象并应用到输入字符串
Matcher matcher = pattern.matcher(rule);
List<String> rules = new ArrayList<>();
while (matcher.find()) {
String str = matcher.group().trim();
rules.add(str);
}
return rules;
}
public static void main(String[] args) {
//String str = "aa 11 33 cc dd dddddsss dsds -- cc sss swww wwse ssesd docker-dod-1 ";
String str = "3 0 0 ACCEPT all -- * docker0 0.0.0.0/0 0.0.0.0/0 ctstate RELATED,ESTABLISHED sssss";
Pattern pattern = Pattern.compile("(.*?)\\s+|.*?$");
Matcher matcher = pattern.matcher(str);
List<String> list = new ArrayList<>();
while (matcher.find()) {
String group = matcher.group(0).trim();
System.out.println(group);
list.add(group);
}
System.out.println("list:" + list);
}
}
总结
这里只是简单的记录一下,后面如果集成完毕,在做详细的文档描述。