正则表达式:删除中间字符串

时间:2014-12-11 22:16:53

标签: regex

我有以下句子:

**     DATE : 04/12/2014   * TIME: 07:49:42                **

我只想捕获04/12/2014 07:49:42.

我试过这个.*DATE : ([0-9\/]+.*TIME: [0-9\:]+)

但我得到了这个:"04/12/2014 * TIME: 07:49:42."

如何删除" * TIME:"?

我在纯正则表达式中需要它,所以我在http://www.regexr.com/进行测试。

3 个答案:

答案 0 :(得分:1)

[\* ]*Date\s*:\s*([0-9/]+)[ \*]*time\s*:\s*([0-9:]+)[ \*]*

在替换语句中你使用$1 $2然后你会得到你想要的东西

答案 1 :(得分:0)

这应该可以解决问题:

/\*\* +DATE : ([\d|\/]+) +\* TIME: ([\d|:]+) +\*\*/

这将返回一个元组。因此,例如,使用JavaScript:

var s = "**     DATE : 04/12/2014   * TIME: 07:49:42                **",
    re = /\*\* +DATE : ([\d|\/]+) +\* TIME: ([\d|:]+) +\*\*/;

re.exec(s);  // returns ["original string", "04/12/2014", "07:49:42"]

<强>击穿

\*\* +DATE :(请注意冒号后面的空格)最多匹配"DATE : "

([\d|\/]+)匹配数字和斜杠,并将它们作为第一组捕获。

+\* TIME:最多匹配"TIME: "

([\d|:]+)通过匹配数字或冒号来捕获时间

+\*\*/完成序列

答案 2 :(得分:0)

怎么样:

/DATE\s+:\s+([0-9/]+).+TIME\s+:\s+([0-9:]+)/