php - 如何使用正则表达式获取字符串中子字符串的数量?

标签 php

我有一个字符串和子字符串的格式,例如“Hello world!%1, abcdef%2, gfgf%14”,即子字符串的格式是“%”+数字(0...无穷大),并且我需要获取任意字符串中该子字符串的计数。我知道 substring_count 函数,但对于这个函数我需要知道定义的行。那么,请告诉我,如何使用正则表达式或其他方式来计数?

编辑:

此代码有效:

$r = "Hello world!%1, abcdef%2, gfgf%14";

$matches = array();
preg_match_all('/\%\d+/', $r, $matches);
echo isset($matches[0]) ? count($matches[0]) : 0;

但是如果我在 %1 之前或之后有一个空格,则代码将不起作用。请修正这个表达式。提前致谢。

最佳答案

<?php

$str = "Hello world!%1, abcdef%2, gfgf%14";

$match_count = preg_match_all("/%\d+/", $str);

echo $match_count;

顺便说一下,$matches 将保存所有匹配的子字符串。

关于php - 如何使用正则表达式获取字符串中子字符串的数量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11580244/

相关文章:

php - "Illegal offset"循环内部

php - 如何将 php 值传递给 javascript?

PHP 日历从星期一开始一周(偏移量)

php - 数据库未与 php 连接

php - 允许用户在没有 Sudo 的情况下重新加载 PHP FPM

php - Drupal 是否解析未使用的 Hook ?

php - jquery ui 选项卡和 php 回显数据

PHP preg_replace() 改变版权年份

php - 如何在php中从数据库中的密码md5值获取原始密码?

php - 如何从 cake php 中的 url 获取 id