Php 如何仅从字符串中获取数字?

Php 如何仅从字符串中获取数字?,php,Php,我有这样的字符串: 第001课:完成 我只想得到数字部分,在本例中是001 我试过这个: $str = the_title(); preg_match_all('!\d+!', $str, $matches); $number = implode(' ', $matches[0]); echo $number; 但是echo$number再次输出整个字符串:Lesson 001:Complete 如何正确执行此操作?filter\u var 您可以使用并清理字符串,使其仅包含整

我有这样的字符串:

第001课:完成

我只想得到数字部分,在本例中是
001

我试过这个:

  $str = the_title();
  preg_match_all('!\d+!', $str, $matches);
  $number = implode(' ', $matches[0]);
  echo $number;
但是
echo$number
再次输出整个字符串:
Lesson 001:Complete

如何正确执行此操作?

filter\u var 您可以使用并清理字符串,使其仅包含整数

$s = "Lesson 001: Complete";
echo filter_var($s, FILTER_SANITIZE_NUMBER_INT);
$s = "Lesson 001: Complete";
preg_match("/([0-9]+)/", $s, $matches);
echo $matches[1];

预赛 可以使用正则表达式仅匹配整数

$s = "Lesson 001: Complete";
echo filter_var($s, FILTER_SANITIZE_NUMBER_INT);
$s = "Lesson 001: Complete";
preg_match("/([0-9]+)/", $s, $matches);
echo $matches[1];

您可以尝试使用
/\d+/

$str = the_title();
preg_match_all('/\d+/', $str, $matches);
echo $matches[0]; 

你上面的查询可以正常工作,它输出“001”,没有问题。是的,它工作得很好,那么你有什么问题?正如我对@ʰ所说的ᵈˑ由于某种原因,如果我做了
$s=“第001课:完成”但不是在我做
$s=the_title()时即使它们的输出相同。不知道为什么。@alexchenco让我猜猜怎么做:
var\u dump(the_title())NULL
,对吗?你知道为什么吗?解决方案使用:获取标题()(我得100分:)?)因为某种原因,如果我这样做
$s=“第001课:完成”,那么它会起作用但不是在我做
$s=the_title()时即使它们的输出相同。奇怪。@alexchenco看(Rizier123得到100分)