我有一個多行字符串。對於這個例子,我的字符串將是這樣的:PHP簡單字符串操作
Name:Jaxo
Description:A person on Stackoverflow
Question:$this->questionName();
我怎麼能得到只是說,'說明'?在描述之後,我需要所有的東西,比如'Stackoverflow上的一個人'。我試過這樣的正則表達式,但它不起作用:/^Description:(.+?)\n/i
任何幫助非常感謝!
感謝
-Jaxo
我有一個多行字符串。對於這個例子,我的字符串將是這樣的:PHP簡單字符串操作
Name:Jaxo
Description:A person on Stackoverflow
Question:$this->questionName();
我怎麼能得到只是說,'說明'?在描述之後,我需要所有的東西,比如'Stackoverflow上的一個人'。我試過這樣的正則表達式,但它不起作用:/^Description:(.+?)\n/i
任何幫助非常感謝!
感謝
-Jaxo
這應該爲你工作:
if (preg_match('/Description:(.+)/im', $subject, $regs)) {
$result = $regs[1];
} else {
$result = "";
}
哪裏$result
是說明名稱。
工作完美,謝謝! 我將其縮短爲: 'echo $ result = preg_match('/ Description:(。+)/ im',$ subject,$ r)?$ r [1]:null;' – Scott
如果有一個換行符將標籤的每個部分分開,您可能會爆炸。
$array = explode("\n",$string); // separate params
$desc = explode(":",$array[1]); // separate description
這樣你可以得到任何參數。
正確,但是如果在描述中有分號,那麼'count($ desc)> 2'(只是一個規格)。 – Donovan
試試這個:
$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)
'說明' 不就是在字符串的開始,你需要刪除^爲您正則表達式工作正常。 –