我在PHP中遇到了正则表达式的问题。这是我正在使用正则表达式的代码:
<br />Level 163 Operative </div> <div class="sectionBar">
这是preg_match语句:
preg_match("/<br \/>Level ([0-300]) (.*) <\/div> <div class=\"sectionBar\"><\/div>/i", $output, $op);
$top = $op[1];
echo "$top";
然而,当我尝试这个时,它不会回应任何东西。
答案 0 :(得分:1)
这是一个匹配0-300;允许前导零,并且如果前面有一个否定符号,则特别排除该数字;或嵌入其他数字:
'/(?<!-)\b0*(?:300|[12][0-9]{2}|[1-9]?[0-9])\b/'
答案 1 :(得分:0)
以下是一系列可以帮助您的示例:
([1-3][0-9][0-9])
这将匹配100-399,不要使用[0-3]希望匹配100以下,因为它只匹配前导零(055但不是55)的数字
([1-2]\d{2})
匹配100-299(\ d匹配单个数字,与[0-9]相同)
([1-2]\d{2}|\d{2})
匹配10-299
([1-2]\d{2}|\d{2}|[1-9])
匹配1-299
([1-2]\d{2}|\d{2}|[1-9]|300)
匹配1-300
([1-2]?\d?\d|300)
1-300,更优雅的方式(前两位数可选?)
([1-2]?\d?\d)
简短版本,匹配0-399
(\d{1-3})
最短版本,匹配0-999(1-3位)