【问题标题】:PHP Search for string then get next charactersPHP搜索字符串然后获取下一个字符
【发布时间】:2010-09-11 15:48:20
【问题描述】:

我有一个如下所示的字符串:

blah blah blah
Team ID:</div>xxxxxxx
blah blah blah

x 是一个 7 位数字。

如何搜索“团队 ID:”,然后获取其前面的 7 位数字? (在 php 中)。

【问题讨论】:

    标签: php html regex


    【解决方案1】:

    使用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,则该模式无法匹配您输入字符串中的任何内容。

    【讨论】:

    • 它工作正常,除了它在 7 位数字之后显示 NULL。
    • 尝试使用var_dump 输出您的价值。如果后面有一个 NULL,那么您提供的示例输入与您的实际输入不匹配。
    • 哈哈,没关系。这只是我的一些旧代码。非常感谢!
    【解决方案2】:

    这是一个不使用正则表达式的解决方案:

    $str='blah blah blah
    Team ID:</div>1234567
    blah blah blah';
    
    $key='TeamID:</div>';
    
    echo substr(strstr($str,$key),strlen($key),7);
    

    【讨论】:

      猜你喜欢
      • 2015-10-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多