3

このような州名とコードの文字列があります

KT16(Ottershaw)

からテキストを抽出する必要があります()。オッターショーを救出する必要があります。phpでこれを行うにはどうすればよいですか。

4

4 に答える 4

7

する必要があります:

preg_match('/\(([^\)]*)\)/', 'KT16(Ottershaw)', $matches);
echo $matches[1];
于 2013-02-07T10:16:49.840 に答える
5

最初の開き括弧と最後の閉じ括弧の間の部分文字列を取得するだけです:

$string = "KT16(Ottershaw)";
$strResult = substr($string, stripos($string, "(") +1,strrpos($string, ")") - stripos($string, "(")-1);  
于 2013-02-07T10:17:24.813 に答える
1

これは、'[' と ']' の間のすべてのテキストを抽出し、2 つの別個の配列 (つまり、1 つの配列の括弧内のテキストと別の配列の括弧の外側のテキスト) に格納するサンプル コードです。

function extract_text($string)
   {
    $text_outside=array();
    $text_inside=array();
    $t="";
    for($i=0;$i<strlen($string);$i++)
    {
        if($string[$i]=='[')
        {
            $text_outside[]=$t;
            $t="";
            $t1="";
            $i++;
            while($string[$i]!=']')
            {
                $t1.=$string[$i];
                $i++;
            }
            $text_inside[] = $t1;

        }
        else {
            if($string[$i]!=']')
            $t.=$string[$i];
            else {
                continue;
            }

        }
    }
    if($t!="")
    $text_outside[]=$t;

    var_dump($text_outside);
    echo "\n\n";
    var_dump($text_inside);
  }

出力: extract_text("こんにちは、お元気ですか?"); 生成されます:

array(1) {
  [0]=>
  string(18) "hello how are you?"
}

array(0) {
}

extract_text("こんにちは [http://www.google.com/test.mp3] お元気ですか?"); 生産します

array(2) {
  [0]=>
  string(6) "hello "
  [1]=>
  string(13) " how are you?"
}


array(1) {
  [0]=>
  string(30) "http://www.google.com/test.mp3"
}
于 2014-01-29T09:23:31.773 に答える
0

次の正規表現が機能するはずです。

/\[(.*?)\]/ 
于 2013-02-07T10:16:30.143 に答える