Regex 小调整,让这个正则表达式,让它做我想要的
我编写了一个coldfusion正则表达式,以匹配页面源代码中的时间,在该页面中,时间分散在整个页面中,如下所示:Regex 小调整,让这个正则表达式,让它做我想要的,regex,coldfusion,Regex,Coldfusion,我编写了一个coldfusion正则表达式,以匹配页面源代码中的时间,在该页面中,时间分散在整个页面中,如下所示: <span>10.30</span> stuff <span>10.45-11.15</span> other stuff <span>17.00</span> 谢谢你纠正我的错误!当然与小b和连字符有关。您可以在可选的非捕获组(?:…)?的帮助下,使模式中与范围的第二部分匹配的部分成为可选的。请注意,您的正
<span>10.30</span> stuff <span>10.45-11.15</span> other stuff <span>17.00</span>
谢谢你纠正我的错误!当然与小b和连字符有关。您可以在可选的非捕获组
(?:…)?
的帮助下,使模式中与范围的第二部分匹配的部分成为可选的。请注意,您的正则表达式也可以匹配多达29个小时,也可以进行更正
使用
见
详细信息:
-前导词边界\b
-要么(?:2[0-3]|[0-1][0-9])
后跟一个从2
到0
的数字,要么3
/0
后跟任意数字(=小时)1
-文字点\。
-从[0-5][0-9]
到0
的数字,后跟任意数字(=分钟)5
-一个可选的非捕获组,与(?:-(?:2[0-3]|[0-1][0-9])\[0-5][0-9])?
匹配,然后使用上面描述的相同模式-
-尾随词边界\b
\b[0-2]\d\.[0-5]\d(-[0-2]\d\.[0-5]\d)?\b
以下是与JavaScript等效的代码段:
var re=/\b[0-2]\d\[0-5]\d(-[0-2]\d\[0-5]\d)?\b/g;
var s=“10.30材料10.45-11.15其他材料17.00”;
控制台日志(s.match(re))代码>更改顺序,首先执行连字符。您还可以在一个捕获组中完成这一切,.Th*nks,Wiktor。(我不应该在这个盒子里写“谢谢”)我先尝试了你的解决方案,效果非常好。给了两年先生一个绿色的复选标记,因为他的解决方案又短又甜!但是,如果不是在这个框中,我应该在哪里说“谢谢”?@user1781623您可以使用答案旁边的箭头。向上投票是一种感谢用户的方式@用户1781623:很高兴它对你有用。请考虑接受这个答案(见)。
\b(?:2[0-3]|[0-1][0-9])\.[0-5][0-9](?:-(?:2[0-3]|[0-1][0-9])\.[0-5][0-9])?\b
\b[0-2]\d\.[0-5]\d(-[0-2]\d\.[0-5]\d)?\b