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

3
我有以下句子:
**     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个回答

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

在替换语句中使用$1 $2,你就可以得到想要的结果。

能否在同一个捕获组中解决它? - Rodrigo Schemes

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|:]+)通过匹配数字或冒号来捕获时间

+\*\*/结束该序列


0

这个怎么样:

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接