我在php中遇到以下问题:
我想提取一个只有两位数字的数字,而不是较长数字的部分。
我使用的是preg_match()
,只想把数字作为匹配结果。
例如,"abc53abc"
应该返回53
,但"abc553abc"
不应该返回任何内容。
我尝试使用"/[0-9]{2}/"
,但第一个示例使用53
,第二个示例使用了55
,这不是我想要的。
有什么想法吗?谢谢
您需要一个负先行和负后向
(?<!'d)'d{2}(?!'d)
演示
解释:
(?<!'d)
这个反向查找断言前面的字符不能是数字'd{2}
匹配两位数字(?!'d)
否定前瞻断言以下字符不能是数字
preg_match("/([0-9]{2})/ui",$str,$match);