如何基于表达式(php)检索字符串的一部分

如何基于表达式(php)检索字符串的一部分,php,Php,我需要一点PHP帮助。我有一个字符串变量,其中包含ID:174。它也可以有它的ID:1736553。我对这些东西很陌生,想知道如何从这个字符串中获取ID号?我不知道ID是什么,需要检索它 提前感谢,, 克里斯试试看 您需要的是$matches[1]如果您知道ID将只由整数组成,并且它只在字符串中出现一次,则可以使用如下方式: preg_match('/ID:\s*(\d+)/', $string, $matches); $the_id = $matches[1]; 您可以阅读更多关于正则表达式

我需要一点PHP帮助。我有一个字符串变量,其中包含ID:174。它也可以有它的ID:1736553。我对这些东西很陌生,想知道如何从这个字符串中获取ID号?我不知道ID是什么,需要检索它

提前感谢,, 克里斯

试试看


您需要的是$matches[1]

如果您知道ID将只由整数组成,并且它只在字符串中出现一次,则可以使用如下方式:

preg_match('/ID:\s*(\d+)/', $string, $matches);
$the_id = $matches[1];

您可以阅读更多关于正则表达式的内容,但我猜如果您还不太了解正则表达式,您可能首先需要一个关于正则表达式的教程。通过一些谷歌搜索,您可能会发现一些不那么枯燥的东西,但如果所有其他方法都失败了,那么PHP手册中的PCRE是Perl语言普及的正则表达式的一个变体

这是另一种方法。它与字符/数字无关。这里的规则是它捕获除空格以外的任何字符集

$str = 'Lorem ipsum dolor ID  3dk45 sit amet.';
preg_match('/(?<=\bID\b)\s*(.+?)+\b/',$str,$matches);
$id = preg_replace('/\s/','',$matches[0]);
$str = 'Lorem ipsum dolor ID  3dk45 sit amet.';
preg_match('/(?<=\bID\b)\s*(.+?)+\b/',$str,$matches);
$id = preg_replace('/\s/','',$matches[0]);