正则表达式澄清

时间:2016-01-01 12:05:43

标签: javascript jquery regex scripting

我有以下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”

3 个答案:

答案 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"]