12怎么取出数字php7
-
对于数字的提取,可以使用正则表达式来实现。以下是使用 PHP 7 的示例代码:
“`php
$string = “abc123def456ghi789”;
$numbers = [];
preg_match_all(‘/\d+/’, $string, $matches);
if (!empty($matches[0])) {
$numbers = $matches[0];
}
print_r($numbers);
“`以上代码会输出一个包含所有数字的数组,即 `[123, 456, 789]`。
解释一下代码的具体逻辑:
– 首先,我们定义一个字符串变量 `$string`,其中包含了一些数字。
– 然后,我们定义了一个空数组 `$numbers`,用来存储提取到的数字。
– 使用 `preg_match_all()` 函数和正则表达式 `\d+` 来匹配字符串中的数字。`\d` 表示数字字符,`+` 表示至少一个数字字符,所以 `\d+` 表达式可以匹配一个或多个连续的数字字符。
– 将匹配到的数字存储到 `$numbers` 数组中。
– 最后,使用 `print_r()` 函数打印出 `$numbers` 数组的内容。请注意,以上代码只是示例,你可以根据实际需求进行调整和优化。
2年前 -
在 PHP 7 中,可以使用多种方法从字符串中提取数字。
方法一:使用正则表达式
正则表达式是一种强大的模式匹配工具,可以用来匹配数字。可以使用preg_match_all函数来匹配字符串中的所有数字。以下是示例代码:“`php
$string = “abc123xyz456”;
preg_match_all(‘/\d+/’, $string, $matches);
$numbers = $matches[0];
print_r($numbers);
“`在以上代码中,正则表达式“\d+”用来匹配一个或多个数字。通过preg_match_all函数,将匹配到的数字存储在$matches数组中。最后,通过print_r函数将提取到的数字输出。
方法二:使用strpbrk函数
strpbrk函数可以在两个字符串中查找第一个匹配的字符,并返回子字符串。可以将所有数字字符作为第一个参数传递给strpbrk函数,将待提取的字符串作为第二个参数传递给它。以下是示例代码:“`php
$string = “abc123xyz456”;
$number_chars = strpbrk($string, “0123456789”);
$numbers = “”;
while ($number_chars !== false) {
$number = strspn($number_chars, “0123456789”);
$numbers .= substr($number_chars, 0, $number);
$number_chars = substr($number_chars, $number);
$number_chars = strpbrk($number_chars, “0123456789”);
}
print_r($numbers);
“`在以上代码中,将数字字符“0123456789”作为第一个参数传递给strpbrk函数,将待提取的字符串作为第二个参数传递给它。然后,通过使用strspn函数来计算每个数字的长度。使用substr函数来提取每个数字,并将它们拼接到$numbers变量中,直到没有更多的数字可提取为止。最后,通过print_r函数将提取到的数字输出。
方法三:使用str_replace函数
str_replace函数可以用来替换字符串中的字符。可以将非数字字符替换为空字符串,从而提取出数字。以下是示例代码:“`php
$string = “abc123xyz456″;
$numbers = str_replace(str_split(‘abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ’), ”, $string);
print_r($numbers);
“`在以上代码中,将待提取的字符串传递给str_replace函数的第三个参数。通过使用str_split函数将所有字母字符转换为一个数组,并将其作为第一个参数传递给str_replace函数。替换后,所有非数字字符将被替换为空字符串,从而提取出数字。最后,通过print_r函数将提取到的数字输出。
方法四:使用filter_var函数
filter_var函数是 PHP 中的过滤函数,可以用来过滤和验证数据。使用FILTER_SANITIZE_NUMBER_INT过滤器可以提取出字符串中的所有数字。以下是示例代码:“`php
$string = “abc123xyz456”;
$numbers = filter_var($string, FILTER_SANITIZE_NUMBER_INT);
print_r($numbers);
“`在以上代码中,将待提取的字符串作为第一个参数,FILTER_SANITIZE_NUMBER_INT常量作为第二个参数传递给filter_var函数。通过使用该常量,可以过滤出字符串中的所有数字。最后,通过print_r函数将提取到的数字输出。
方法五:使用str_split和is_numeric函数
str_split函数将字符串拆分为一个字符数组,is_numeric函数用于判断一个值是否为数字。可以将待提取的字符串传递给str_split函数,然后使用array_filter和is_numeric函数来过滤出数字。以下是示例代码:“`php
$string = “abc123xyz456”;
$chars = str_split($string);
$numbers = array_filter($chars, ‘is_numeric’);
print_r($numbers);
“`在以上代码中,将待提取的字符串传递给str_split函数,将字符串拆分为一个字符数组。然后,使用array_filter函数和is_numeric函数来过滤出数字字符。最后,通过print_r函数将提取到的数字输出。
这些是在 PHP 7 中从字符串中提取数字的几种方法。根据具体的需求和应用场景,选择合适的方法来提取数字。无论是使用正则表达式、字符串函数,还是过滤函数,都能够有效地取出数字。
2年前 -
要从字符串中取出数字,可以使用正则表达式或者内置的函数。下面分别介绍两种方法。
方法1:使用正则表达式
正则表达式是一种强大的字符串匹配工具,可以用来匹配数字字符。在PHP中,可以使用preg_match函数来使用正则表达式进行匹配。具体操作如下所示:“`php
$str = “abc123xyz”;
preg_match(‘/\d+/’, $str, $matches);
$number = $matches[0];
echo $number; // 输出123
“`在上面的代码中,首先定义了一个字符串$str,其中包含了数字字符”123″。然后使用preg_match函数来匹配数字字符,正则表达式’/\d+/’表示匹配一个或多个数字字符。$matches是一个数组,用于存放匹配结果。$matches[0]即为匹配到的第一个结果,即数字字符”123″。最后将匹配到的数字字符打印出来。
方法2:使用内置函数
PHP提供了一些内置函数来处理字符串,其中包括取出数字的函数。常用的函数有preg_replace、str_replace和filter_var。下面分别介绍这些函数的用法。1)使用preg_replace函数
“`php
$str = “abc123xyz”;
$number = preg_replace(‘/\D/’, ”, $str);
echo $number; // 输出123
“`在上面的代码中,通过使用preg_replace函数将非数字字符替换为空字符串,得到的结果即为数字字符”123″。
2)使用str_replace函数
“`php
$str = “abc123xyz”;
$number = str_replace(range(‘a’, ‘z’), ”, $str);
echo $number; // 输出123
“`在上面的代码中,通过使用str_replace函数将小写字母替换为空字符串,得到的结果即为数字字符”123″。
3)使用filter_var函数
“`php
$str = “abc123xyz”;
$number = filter_var($str, FILTER_SANITIZE_NUMBER_INT);
echo $number; // 输出123
“`在上面的代码中,通过使用filter_var函数过滤掉字符串中的非数字字符,得到的结果即为数字字符”123″。
总结:
无论是使用正则表达式还是内置函数,都可以方便地从字符串中取出数字。具体选择哪个方法,可以根据实际需求和个人喜好来决定。2年前