我有以下java脚本来提取字符串中“=”之后出现的单词。
例如:
string strOld="ActionDate=11/20/2014 12:00:00 AM ";
strOld.substr(strOld.indexOf(type)).substr(type.length +1, strOld.substr(strOld.indexOf(type)).substr(type.length).indexOf(" "))
这将从上面的字符串中提取“11/20/2014”。因为这是在“=”之后出现的单词。
我们如何使用Regex重写?
我希望在相同的字符串变量中重新出现“=”时,逗号分隔日期。
如果有多个迹象:
输入:string strOld =“ActionDate = 11/20 / 2014 12:00:00 AM SuspensionCode = 123”; 输出:“11/20 / 2014,123”
答案 0 :(得分:3)
这是一个javascript版本
https://fiddle.jshell.net/nsqbuy11/1/
刚认识jshell并且似乎是一个不错的工具
var data = repo
.Where(o => o.LastUpdated >= monday)
.GroupBy(o => o.LastUpdated)
.Select(g => new { DayOfWeek = g.Key, Count = g.Count() })
.ToList();
答案 1 :(得分:1)
首先将字符串拆分为数组,然后从数组中的第二个项目中提取日期,即日期时间字符串。
var strOld = "ActionDate=11/20/2014 12:00:00 AM";
var arr = strOld.split('=');
var regex = /([\d]{2}\/[\d]{2}\/[\d]{4})\s([\d]{2}:[\d]{2}:[\d]{2}\s(AM|PM))/;
var result;
arr[1].replace(regex, function(date, time) {
result = date;
console.log(result);
});
答案 2 :(得分:1)
如果你不关心等于左边的单词,那么你可以使用这个正则表达式来分割它:
'ActionDate=11/20/2014 12:00:00 AM SuspensionCode=123'.split(/\w+=/);
// result: ["", "11/20/2014 12:00:00 AM ", "123"]
或者如果你想将它们包含在数组中,试试这个:
'ActionDate=11/20/2014 12:00:00 AM SuspensionCode=123'.split(/(\b\w+)=/)
// result ["", "ActionDate", "11/20/2014 12:00:00 AM ", "SuspensionCode", "123"]