我正在寻找特定范围之外的数字的正则表达式。
NOT接受的号码是v10,v11,v12,v13,v14,v15
。我的正则表达式是v(1[0-5])
但是
我不想要除了那6个数字以外的任何数字。
v1 - accepted. Need regex for this
v5 - accepted. Need regex for this
v100 - accepted. Need regex for this
v51 - accepted. Need regex for this
v10...v15 - not accepted. I already have a regex for this.
答案 0 :(得分:1)
使用锚点或边界使匹配更严格。
<?php
ini_set('display_errors', 1);
date_default_timezone_set("GMT");//setting time to GMT timezone
for($x=0;$x<50;$x++)
{
echo "<option value=\"$x\">".date("i:s",$x*15)."</option>";
}
或
\bv(1[0-5])\b
演示:https://regex101.com/r/TPkTom/1/
锚点/边界需要完全匹配。没有这些,只有表达式的一部分必须匹配。
根据更新,否定前瞻将起作用:
^v(1[0-5])$
演示:https://regex101.com/r/TPkTom/4/
或者您可以使用PCRE动词:
v(?!1[0-5]\b)\d+