您好我有以下日志字符串。我希望每个出现的单独逗号。
srcnat: in:(none)(ether5) out:ether1, src-mac 11:aa:22:bb:33:cc, proto TCP (SYN), 10.5.59.207:49361->17.248.147.79:443, len 64
我想要
“srcnat:in :( none)(ether5)out:ether1”
“src-mac 11:aa:22:bb:33:cc”
“proto TCP(SYN)”
“10.5.59.207:49361->1.2.3.44:443”
我可以得到“srcnat:in :( none)(ether5)out:ether1”with regex(^ [^,] *)。我怎样才能分别获得其他人
答案 0 :(得分:0)
由于你没有指定你的语言,我选择了Java,我更熟悉。用
分割myString.split(,\s+(?=(?:(?:[^']*'){2})*[^']*$), -1)
这允许您用逗号后跟空格分隔,而忽略引号中的逗号。
答案 1 :(得分:0)
您可能需要的是正则表达式/([^,]+)(?=,)/g
。
这将匹配(在群组中)任何不是逗号的内容,直到找到逗号。
可以在 Regex101 或以下内容中看到:
var regex = /([^,]+)(?=,)/g;
var string = "srcnat: in:(none)(ether5) out:ether1, src-mac 11:aa:22:bb:33:cc, proto TCP (SYN), 10.5.59.207:49361->17.248.147.79:443, len 64";
console.log(string.match(regex));