我不能让这个简单的正则表达式来正常工作

我不能让这个简单的正则表达式来正常工作

问题描述:

我在Javascript我不能让这个简单的正则表达式来正常工作

在这里做这个是我的字符串:09.22.2011-23.21-west-day

这里的想什么,我拉出来的:23.21

这里是我的表达:/-[0-9]*\.[0-9]*/

我得到-23.21所以我不得不在这之后运行一个替换方法来删除“ - ”。有没有办法用这个正则表达式来排除“ - ”?我从来没有真正完善我的正则表达式技能,因为我通常使用具有nice()捕获组的PHP。

+1

Javascript也有'()'... –

JavaScript有capture groups太:

var time = "09.22.2011-23.21-west-day".match(/-(\d{2}\.\d{2})/)[1] 

给你23.21

  1. 您可以使用\d作为简写为[0-9]
  2. 如果你知道它应该多少位数字有,使用{n}{m,n}量词。它会减少匹配错误事件的机会。
+0

非常感谢。每个人的回答都很完美。我不知道捕获组被称为捕获组。这使一切变得更容易! – Skinner927

您也可以在JavaScript中使用()

s = '09.22.2011-23.21-west-day'; 
rx = s.match('-([0-9]*\.[0-9]*)') 
alert(rx[1]);