从nodeJS中的stringparsing一些值
nodeJSparsing下面的string来提取下面描述的值的最好方法是什么?
client 111.222.333.44#59699: query: jadssdffsdnisa.website.com IN A -ED (81.11.11.175)
当前代码:
//parsing var c_ip = data.split("client ")[1].split("#")[0] var sdomain = data.split("query:")[1].split(".")[0] console.log("c_ip: " + c_ip + '\n'); console.log("sdomain: " + sdomain + '\n');
结果是:
c_ip: 130.225.244.66 sdomain: paul
这很大程度上取决于你的inputstring是如何到达的,但假设它总是有相同的格式,你可以做这样的事情
var task = "client 111.222.333.44#59699: query: jadssdffsdnisa.website.com IN A -ED (81.11.11.175)" var c_ip = task.split("client ")[1].split("#")[0] var sdomain = task.split("query: ")[1].split(".")[0] console.log("c_ip:", c_ip) console.log("sdomain:", sdomain)
使用基本的正则expression式:
var string = "client 111.222.333.44#59699: query: jadssdffsdnisa.website.com IN A -ED (81.11.11.175)" var c_ip_reg = /client\s(.*)#/; var c_ip = string.match(c_ip_reg); var sdomain_ref = /query:\s(.*?)\/; var sdomain = string.match(sdomain_ref);
我知道这可以缩短为一个多组的比赛,但为了可读性,我尽可能地尽量详细。
。