0

我对 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/4r退出?11/11tr15/6

  1. 我认为它类似于搜索$$
  2. 请问,下一个字符是空格吗?
  3. 请问,下一个字符是数字吗?
  4. 问,下一个字符是 '/'

当所有这些都是真的时,我想抓住6/4r它并将它放在一个单独的变量中。

我怎样才能在 PHP 中做到这一点?

4

4 回答 4

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])总是会返回你想要的部分。

于 2012-08-17T12:53:03.683 回答
2

正则表达式:

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

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

echo $match[1];
于 2012-08-17T12:53:39.410 回答
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);
于 2012-08-17T12:58:42.390 回答
0

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

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

$pieces = explode(' \$\$ ', $str1);
//Should contain 6/4r
echo $pieces[1];
于 2012-08-17T12:54:09.983 回答