字符串后的特殊字符

时间:2015-03-06 09:05:22

标签: php

$string = "ce_content youtube_bMnXEbm-JGw first"

我希望在youtube_之后获取字符串:bMnXEbm-JGw

$ string还可以包含其他内容,如:

$string = "image youtube_bMnXEbm$wdwJGw first highlight"

2 个答案:

答案 0 :(得分:1)

$string = "image youtube_bMnXEbm\$wdwJGw first highlight";

首先,您要使用正则表达式来匹配所有这些字符串。第二部分的括号表示该部分字符串是分别捕获的。

preg_match_all('/youtube\_([^\s]+)/', $string, $matches);

由于您可能有多个匹配项,因此您必须循环遍历所有匹配项。这也会检查是否有任何匹配。

if (isset($matches[1]) && !empty($matches[1])) {
    foreach($matches[1] as $match){
        echo $match;   
    }

}

//output = bMnXEbm$wdwJGw

答案 1 :(得分:0)

使用整洁的内置PHP函数explode()以下列方式拆分字符串,不需要饥饿的正则表达式引擎,例如:

<?php 
$string = "image youtube_bMnXEbm$wdwJGw first highlight"
$pieces = explode("youtube_", $string ); 
foreach ($pieces as $key=>$value) {    
   echo $key.$value; 
}

查看更多here