php - 单个数字的正则表达式捕获两位数?

标签 php regex

此正则表达式捕获两位数字:

如果我有 y11 它仍然会捕获它,如何只匹配 y0, y1, y2, y3, y4, y5, y6, y7, y8, y9 ??数字后可能有一个空格或一个字母或一个点。

preg_replace('/y([1-9]{1})/', 'y0$1', $string)

最佳答案

我会匹配模式 y\d(?!\d),它匹配 y 后跟一个数字,它本身没有跟另一个数字.

$string = "y2";
echo $string . "\n";
$string = preg_replace("/y(\d)(?!\d)/", "y0$1", $string);
echo $string;

这打印:

y2
y02

正则解释:

y       the letter 'y'
(\d)    a single digit (capture it)
(?!\d)  assert that what follows is either a non digit character OR
        the end of the input

关于php - 单个数字的正则表达式捕获两位数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66951744/

相关文章:

php - 网站用户帐户目录访问

php - bind_param 与其他字符连接

PHP 日文字符验证

python - Python 中的正则表达式替换会导致出现 ASCII 字符

PHP查看有多少个字符相等

c# - C# 中的正则表达式 - 如何仅替换 Match 中的一个特定组?

javascript - 用于字符串格式化的用户可自定义正则表达式

php - 当字段名称和值包含单引号时,PDO 插入失败 (42000/1064)

php - 在 Symfony 文件对象中加载 'php://temp' 或 'php://memory' 文件

mysql - 如何使用 spring-data-jpa 对具有持久关系的实体执行 native 查询