gpt4 book ai didi

javascript - 从文件中读取并查找特定行

转载 作者:太空宇宙 更新时间:2023-11-04 00:28:48 27 4
gpt4 key购买 nike

我需要根据某些关键字获取设置文件中的信息(我无法更改格式)。该文件如下所示:

username=myusername
address=156a1355e3486f4
data=function(i){if (i!=0) return true; else return false;}

系统是<key> = <value> \n 。可以有= 、值部分中的空格或其他字符,但绝不能换行。键是唯一的(在“关键部分”中,它们可以出现在值中,但 \nkey= 对于每个键在文件中仅出现一次)。

使用 shell 脚本,我发现我的值如下:

username=`grep ^username file.txt | sed "s/^username=//"`

Grep 将返回 username=someusername sed 替换 key 和 =什么都没有,只留下值(value)。

在node.js中,我想访问文件中的一些数据。例如,我想要地址和数据的值。

我怎样才能在node.js中做到这一点?之后fs.readFile(file.txt)我不知道该怎么办。我想我将不得不使用 split ,但使用 \n似乎不是最好的选择,也许正则表达式可以提供帮助?

理想的情况是“找到一个以 \nkey= 开头并以第一个 \n 结尾的子字符串”,然后我可以轻松地拆分以找到该值。

最佳答案

// @text is the text read from the file.
// @key is the key to find its value
function getValueByKey(text, key){
var regex = new RegExp("^" + key + "=(.*)$", "m");
var match = regex.exec(text);
if(match)
return match[1];
else
return null;
}

示例:

// text should be obtained using fs.readFile...
var text = "username=myusername\naddress=156a1355e3486f4\ndata=function(i){if (i!=0) return true; else return false;}";


function getValueByKey(text, key){
var regex = new RegExp("^" + key + "=(.*)$", "m");
var match = regex.exec(text);
if(match)
return match[1];
else
return null;
}

console.log("adress: ", getValueByKey(text, "address"));
console.log("username: ", getValueByKey(text, "username"));
console.log("foo (non exist): ", getValueByKey(text, "foo"));

关于javascript - 从文件中读取并查找特定行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41767409/

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