正则表达式从字符串中查找第一个和最后一个日期:输出12/31/2018和12/1/2018

时间:2019-02-22 18:03:35

标签: regex

我有一个逗号分隔的日期字符串,需要使用正则表达式从中提取第一个和最后一个日期。例如:(Day = 12/31/2018:Monday-12/31,12/30/2018:Sunday-12/30,12/29/2018:Saturday-12/29,12/28/2018:Friday-12 / 28,12/27/2018:星期四-12/27,12/26/2018:星期三-12/26,12/25/2018:星期二-12/25,12/24/2018:星期一-12/24 ,12/23/2018:星期日-12/23,12/22/2018:星期六-12/22,12/21/2018:星期五-12/21,12/20/2018:星期四-12/20,12 / 19/2018:星期三-12/19,12/18/2018:星期二-12/18,12/17/2018:星期一-12/17,12/16/2018:星期日-12/16,12/15 / 2018:星期六-12/15,12/14/2018:星期五-12/14,12/13/2018:星期四-12/13,12/12/2018:星期三-12/12,12/11/2018 :星期二-12/11,12/10/2018:星期一-12/10,12/9/2018:星期日-12/09,12/8/2018:星期六-12/08,12/7/2018:星期五-12/07,12/6/2018:星期四-12/06,12/5/2018:星期三-12/05,12/4/2018:星期二-12/04,12/3/2018:星期一-12 / 03,12/2/2018:星期日-12/02,12/1/2018:星期六-12/01)。

可以有2个正则表达式。我可以使用'\ =(。*?):获取第一个值 第二个有点棘手,需要帮助为其找到一个正则表达式。任何帮助表示赞赏。

1 个答案:

答案 0 :(得分:0)

正则表达式搜索字符串:

  1. 第一次约会:'\ =([^,] *):'
  2. 最后一次约会:'([^,^ \ s] ):[^,] $'

和javascript示例代码:

var str = '(Day = 12/31/2018:Monday - 12/31 , 12/30/2018:Sunday - 12/30 , 12/2/2018:Sunday - 12/02 , 12/1/2018:Saturday - 12/01 ).';
var rg1 = /\=([^,]*):/;
var rg2 = /([^,^\s]*):[^,]*$/;
var match1 = rg1.exec(str);
var match2 = rg2.exec(str);
alert('First date is = "' + match1[1] + '", last date is "' + match2[1] + '"');