gpt4 book ai didi

java解析器文件文本

转载 作者:行者123 更新时间:2023-11-29 21:21:04 25 4
gpt4 key购买 nike

我有这个文本文件,我想要解析器并将其放入 mysql 数据库:

    A:PE9301_P# show port 1/1/1 
===============================================================================
Ethernet Interface
===============================================================================
Description : PE9301_P:PE9148_P:01:10G
Interface : 1/1/1 Oper Speed : 10 Gbps
Link-level : Ethernet Config Speed : N/A
Admin State : up Oper Duplex : full
Oper State : up - Active in LAG 1 Config Duplex : N/A
Physical Link : Yes MTU : 9212
Single Fiber Mode : No Min Frame Length : 64 Bytes

我只想要这些信息:PE9301,向上 - LAG 1 中活跃我找不到解决方案,请帮助 mz

最佳答案

使用以下正则表达式:

/Description\s+:\s([\w\s]+)/g

/Oper State\s+:\s(.{26,26})/g

如果要解析整个结构,请使用字符长度而不是正则表达式将结构拆分为键值数组,并将键与常量(“描述”、“操作状态”等)进行比较

作为 Java 测试单元的工作示例:

private static final String NIFSOURCE = "A:PE9301_P# show port 1/1/1\r\n"+
"===============================================================================\r\n"+
"Ethernet Interface\r\n"+
"===============================================================================\r\n"+
"Description : PE9301_P:PE9148_P:01:10G\r\n"+
"Interface : 1/1/1 Oper Speed : 10 Gbps\r\n"+
"Link-level : Ethernet Config Speed : N/A\r\n"+
"Admin State : up Oper Duplex : full\r\n"+
"Oper State : up - Active in LAG 1 Config Duplex : N/A\r\n"+
"Physical Link : Yes MTU : 9212\r\n"+
"Single Fiber Mode : No Min Frame Length : 64 Bytes";

/**
* Ceci est un test que l'ont peut remplacer par une méthode Main ou une function
* - Uncle Bob Martin
*/
@Test
public void NIFParseTest() {
String NIFdescription = null, NIFstate = null;

Pattern motifRE = Pattern.compile("^Description\\s+:\\s(\\w+)", Pattern.MULTILINE);
Pattern stateRE = Pattern.compile("^Oper State\\s+:\\s(.{26,26})", Pattern.MULTILINE | Pattern.UNIX_LINES);

Matcher foundMatch = motifRE.matcher(NIFSOURCE);
if (foundMatch.find()) {
NIFdescription = foundMatch.group(1); //0 est la chaine complète, les motifs entre parenthèse sont disponibles à l'index 1
}

foundMatch = stateRE.matcher(NIFSOURCE);
if (foundMatch.find()) {
NIFstate = foundMatch.group(1);
}
assertNotNull(NIFdescription);
assertNotNull(NIFstate);
}

关于java解析器文件文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35719429/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com