用javascript解析文本文件
我有一个包含多条记录的文本文件,每条记录都有一行新行,如下所示用javascript解析文本文件,javascript,datetime,Javascript,Datetime,我有一个包含多条记录的文本文件,每条记录都有一行新行,如下所示 username ="Test1" :[Jul 01 2012] username ="Test2" :[Jul 03 2011] username ="Test3" :[Jul 28 2011] username ="Test4" :[Jul 12 2010] 如何使用上述格式解析此文本,并仅将数据存储在两个方括号之间?[]因此返回的结果如下所示 Jul 01 2012 Jul 03 2011 Jul 28 2011 Jul 1
username ="Test1" :[Jul 01 2012]
username ="Test2" :[Jul 03 2011]
username ="Test3" :[Jul 28 2011]
username ="Test4" :[Jul 12 2010]
如何使用上述格式解析此文本,并仅将数据存储在两个方括号之间?[]因此返回的结果如下所示
Jul 01 2012
Jul 03 2011
Jul 28 2011
Jul 12 2010
我只想使用JavaScript来完成这项任务
提前感谢您的支持 循环遍历每一行,并解析出所需的数据。正则表达式在这里应该工作得很好 假设字符串在变量
myText
中:
var lines = myText.split("\n"),
dates = [], tempVar;
for(var i = 0, len = lines.length; i < len; i++){
tempVar = lines[i].match(/^.*:\[(\w{3} \d{2} \d{4})\]/);
if(tempVar !== null){
dates.push(tempVar[1]);
}
}
var lines=myText.split(“\n”),
日期=[],临时变量;
对于(变量i=0,len=lines.length;i
演示:循环每一行,并解析出所需的数据。正则表达式在这里应该工作得很好 假设字符串在变量
myText
中:
var lines = myText.split("\n"),
dates = [], tempVar;
for(var i = 0, len = lines.length; i < len; i++){
tempVar = lines[i].match(/^.*:\[(\w{3} \d{2} \d{4})\]/);
if(tempVar !== null){
dates.push(tempVar[1]);
}
}
var lines=myText.split(“\n”),
日期=[],临时变量;
对于(变量i=0,len=lines.length;i
演示:此处:
/[a-z]+\d{2}\d{4}(?=\]$)/gim
[a-z]+ # multiple basic latin chars.
# an empty space
\d{2} # a 2 digit integer
# an empty space
\d{4} # a 4 digit integer
(?=\]$) # followed by a closing square bracket and then an end-of-line
旗帜:
用于全局,使其尽可能匹配g
不区分大小写。这是第一部分i
表示多行,它使美元符号与行的结尾而不是字符串的结尾匹配m
- 这里:
/[a-z]+\d{2}\d{4}(?=\]$)/gim
[a-z]+ # multiple basic latin chars.
# an empty space
\d{2} # a 2 digit integer
# an empty space
\d{4} # a 4 digit integer
(?=\]$) # followed by a closing square bracket and then an end-of-line
旗帜:
用于全局,使其尽可能匹配g
不区分大小写。这是第一部分i
表示多行,它使美元符号与行的结尾而不是字符串的结尾匹配m
函数提取回执之间(str){
返回str.split(/\n/).map(函数(x){
if(x.match(/:\[(.*)\]/){return RegExp.$1;}
});
}
var str='username=“Test1”:[2012年7月1日]\n
+'username=“Test2”:[2011年7月3日]\n
+'username=“Test3”:[2011年7月28日]\n
+'username=“Test4”:[2010年7月12日];
抽提物夹带(str);
//=>[“2012年7月1日”、“2011年7月3日”、“2011年7月28日”、“2010年7月12日”]
函数ExtractBetweenBackets(str){
返回str.split(/\n/).map(函数(x){
if(x.match(/:\[(.*)\]/){return RegExp.$1;}
});
}
var str='username=“Test1”:[2012年7月1日]\n
+'username=“Test2”:[2011年7月3日]\n
+'username=“Test3”:[2011年7月28日]\n
+'username=“Test4”:[2010年7月12日];
抽提物夹带(str);
//=>[“2012年7月1日”、“2011年7月3日”、“2011年7月28日”、“2010年7月12日”]
请阅读这篇正则表达式文章请阅读这篇正则表达式文章快速提问。如何更改行匹配代码.match(/^.*:[(\w{3}\d{2}\d{4})]/;因此,让我们假设有时括号中的数据可能是这样的格式[Mar 16 2011:11:52:51 GMT]@BaconJuice:你可以抓取[]
中的所有内容,无论其格式如何:/^.\[(.*)\]/
如果你需要肝脏或肾脏,让我知道=)@BaconJuice:不,我不需要这样的东西。我只要你的第一个孩子,我们就扯平了-我只想问最后一个问题!我试着玩你的代码,但我似乎得到了一个错误的结果。如何将结果从“2012年7月1日”、“2011年7月3日”、“2011年7月28日”、“2010年7月12日”更改为“2012年7月1日”、“2011年7月3日”、“2011年7月28日”和“2010年7月12日”,基本上删除逗号并替换为换行符。请快速提问。如何更改行匹配代码.match(/^.*:[(\w{3}\d{2}\d{4})]/;因此,让我们假设有时括号中的数据可能是这样的格式[Mar 16 2011:11:52:51 GMT]@BaconJuice:你可以抓取[]
中的所有内容,无论其格式如何:/^.\[(.*)\]/
如果你需要肝脏或肾脏,让我知道=)@BaconJuice:不,我不需要这样的东西。我只要你的第一个孩子,我们就扯平了-我只想问最后一个问题!我试着玩你的代码,但我似乎得到了一个错误的结果。如何将结果从“2012年7月1日”、“2011年7月3日”、“2011年7月28日”、“2010年7月12日”更改为“2012年7月1日”、“2011年7月3日”、“2011年7月28日”和“2010年7月12日”,基本上删除逗号并替换为换行符。