如何使用PHP在字符串中查找内容

时间:2012-08-17 12:49:42

标签: php

我对PHP有点绿,因为我之前在ASP经典编码并且它真的不一样

我有3个包含以下文字的字符串:

$str1 = "is simply dummy text of the printing $$ 6/4r $$ and typesetting industry"
$str2 = "is simply dummy text of the printing $$ 11/11tr $$ and typesetting industry"
$str3 = "is simply dummy text of the printing $$ 15/6 $$ and typesetting industry"

如何在单独的变量中输出6/4r11/11tr15/6

  1. 我觉得有点像搜索$$
  2. 问,下一个字符是空格吗?
  3. 问,下一个字母是一个数字吗?
  4. 问,是下一个字母'/'
  5. 如果所有这些都是真的,我想抓住6/4r并将其放在单独的var。

    我如何在PHP中执行此操作?

4 个答案:

答案 0 :(得分:6)

explode

怎么样?
var_dump(explode('$$', $str1));

array(3) {
 [0] => string(37) "is simply dummy text of the printing "
 [1] => string(6) " 6/4r " 
 [2]=>  string(25) " and typesetting industry"
}

因此trim($array[1])将始终返回您想要的细分。

答案 1 :(得分:2)

正则表达式:

$str = 'is simply dummy text of the printing $$ 6/4r $$ and typesetting industr';

preg_match('|\$\$(.*)\$\$|',$str,$match);

echo $match[1];

答案 2 :(得分:0)

我不知道这是不是最好的方法,但我会使用爆炸功能

http://php.net/manual/en/function.explode.php

$pieces = explode(' \$\$ ', $str1);
//Should contain 6/4r
echo $pieces[1];

答案 3 :(得分:0)

使用preg_match查找美元符号之间的所有内容(不是空格)

function getValue($str){
    $pattern = '/\$\$\s*([^\$\s]+)\s*\$\$/i';
    if(preg_match($pattern, $str, $match)){
        return $match[1];
    }
    return false;
}

echo getValue($str1);