从nodeJS中的字符串解析一些值
parsing some values from string in nodeJS
在 nodeJS 中解析为以下字符串以提取下述值的最佳方法是什么?
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
使用基本正则表达式:
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);
我知道这可以缩短为多组匹配,但为了便于阅读,我尽量写得尽可能详细。
.
这在很大程度上取决于您的输入字符串是如何到达的,但假设它始终具有相同的格式,您可以这样做
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)
此外,如果变化更大,您可以使用正则表达式。 @jens-habegger 有一个很好的例子
在 nodeJS 中解析为以下字符串以提取下述值的最佳方法是什么?
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
使用基本正则表达式:
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);
我知道这可以缩短为多组匹配,但为了便于阅读,我尽量写得尽可能详细。
.
这在很大程度上取决于您的输入字符串是如何到达的,但假设它始终具有相同的格式,您可以这样做
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)
此外,如果变化更大,您可以使用正则表达式。 @jens-habegger 有一个很好的例子