我想查找并捕获两位数字仅当字符串中没有其他数字时,我的输入:
foo 12 ✅
foo 12 bar ✅
12 baz ✅
9 foo 12 ❌
foo 12 baz 2 ❌
12 2 ❌
我试过这个模式preg_match('`(?<=\d)\b\d\d\b(?=\d)`', $input);
但不工作https://regex101.com/r/Gsvguc/1
最佳答案
您需要检查整个字符串以包含没有任何其他数字,因此从头开始。匹配非数字,然后使用 \K
重置匹配(这是结果只包含您想要的两位数字所必需的),匹配两位数字,并向前看直到字符串末尾不再有数字:
^\D*\K\d{2}(?=\D*$)
https://regex101.com/r/Gsvguc/2
关于php - 正则表达式捕获两位数字仅当字符串中没有其他数字时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65443293/