我有一个字符串和子字符串的格式,例如“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/