php - 正则表达式捕获两位数字仅当字符串中没有其他数字时

标签 php regex

我想查找并捕获两位数字仅当字符串中没有其他数字时,我的输入:

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/

相关文章:

html - 我如何创建一个正则表达式,为我的所有样式选择器附加一个 id

php - 使用 d-m-Y 而不是 m-d-Y 初始化 DateTime PhP

javascript - 使用正则表达式将当前 url 路径与导航路径匹配?

java正则表达式允许可选空格字符

php - 如何将保存的 localStorage 网络数据传递给 php 脚本?

c# - bool Prop 匹配

java - RegEx 拆分 camelCase 或 TitleCase(高级)

php - 关于 MySQL 中的 Join 语句(或其他有效方法)的问题

php - 如何获取apache的版本?

php - 如何设置 HTML 文件字段的值?