2011-07-08 19 views
0

私は複数の行の文字列を持っています。この例では、私の文字列は次のようになります:PHPの単純な文字列操作

Name:Jaxo 
Description:A person on Stackoverflow 
Question:$this->questionName(); 

「説明」はどうやって得ることができますか?私は説明の後にすべて、すなわち 'Stackoverflowの人'を必要とします。私はこのような正規表現を試してみましたが、うまくいきません:/^Description:(.+?)\n/i

何か助けてくれてありがとうございます!

おかげ

これはあなたのために働く必要があります

-Jaxo

+0

'説明' ではないが、文字列の先頭にある、あなたの正規表現のために^を取り外す必要正常に動作します。 –

答えて

1

$resultは説明名称である

if (preg_match('/Description:(.+)/im', $subject, $regs)) { 
    $result = $regs[1]; 
} else { 
    $result = ""; 
} 

+0

完璧に働いた、ありがとう! 'echo $ result = preg_match( '/説明:($ i件)、$件名、$ r)?$ r [1]:null;' – Scott

0

ラベルの各部分を区切る改行文字がある場合、あなたは爆発する可能性があります。

$array = explode("\n",$string); // separate params 
$desc = explode(":",$array[1]); // separate description 

このようにして、任意のパラメータを取得できます。

+0

修正してください、記述にセミコロンがある場合、 'count($ desc)> 2'(単なる指定)です。 – Donovan

0

はこれを試してみてください:

$a="Name:Jaxo 
Description:A person on Stackoverflow 
Question:\$this->questionName();"; 

preg_match("/Description:([^\n]+)/i",$a,$m); 
print_r($m); 

出力:

Array ([0] => Description:A person on Stackoverflow [1] => A person on Stackoverflow)