【发布时间】:2010-09-11 15:48:20
【问题描述】:
我有一个如下所示的字符串:
blah blah blah
Team ID:</div>xxxxxxx
blah blah blah
x 是一个 7 位数字。
如何搜索“团队 ID:”,然后获取其前面的 7 位数字? (在 php 中)。
【问题讨论】:
我有一个如下所示的字符串:
blah blah blah
Team ID:</div>xxxxxxx
blah blah blah
x 是一个 7 位数字。
如何搜索“团队 ID:”,然后获取其前面的 7 位数字? (在 php 中)。
【问题讨论】:
使用preg_match。它接受一个可选的数组,它将在其中放置匹配项。索引 0 将包含整个匹配模式,索引 1 将包含 (\d{7}) 匹配的 7 位数字:
$str = 'blah blah blah
Team ID:</div>1234567
blah blah blah';
$matches = array();
preg_match('/Team ID:<\/div>(\d{7})/', $str, $matches);
echo $matches[0]; // "Test ID:</div>1234567"
echo $matches[1]; // "1234567"
$team_id = (int)$matches[1]; // convert matches to an integer
一定要检查preg_match的返回值;如果不是1,则该模式无法匹配您输入字符串中的任何内容。
【讨论】:
var_dump 输出您的价值。如果后面有一个 NULL,那么您提供的示例输入与您的实际输入不匹配。
这是一个不使用正则表达式的解决方案:
$str='blah blah blah
Team ID:</div>1234567
blah blah blah';
$key='TeamID:</div>';
echo substr(strstr($str,$key),strlen($key),7);
【讨论】: