2017-05-18 70 views
-1

可以說我有這個字符串:從字符串中提取精確的字母

CNVFJD-0905-05-BX 

CNV總是存在的,同樣與第一「-」。

我需要的是在這個例子中,我需要「FJD」 CNV和第一行(之間「提取」什麼。

我真的不知道如何處理這個。

謝謝你

+0

您已經嘗試了什麼? –

+1

也許'CNV([^ - ] +)',用'preg_match'然後拉索引1. – chris85

+0

您應該嘗試**自己編寫代碼**。在[**做更多的研究**之後](https://meta.stackoverflow.com/q/261592/1011527)如果你有問題**發佈你已經嘗試了**的**明確的解釋不工作**並提供[最小,完整和可驗證示例](http://stackoverflow.com/help/mcve)。閱讀[如何問](http://stackoverflow.com/help/how-to-ask)一個很好的問題。請務必[參觀](http://stackoverflow.com/tour)並閱讀[this](https://meta.stackoverflow.com/q/347937/1011527)。 –

回答

0

您可以使用SUBSTR,試試這個

substr($sring, 3, strpos($string, '-')); 
-1

隨着sscanf

$str = "CNVFJD-0905-05-BX"; 
sscanf($str, "CNV%[A-Z]-", $result); 

echo $result; 
-4
$parts = explode("-", $string); 
$result = substr($parts[0], 3); 

看到這裏的工作示例https://3v4l.org/pRJ3e

+0

@aryamccarthy爲什麼我的答案比這裏的另外兩個答案更需要解釋?不要告訴我你認爲卡西米爾寫的兩個字是一個解釋? – Andreas

+0

downvoter請解釋爲什麼? – Andreas

+1

我沒有DV,但我可以想象它已經完成了,因爲儘管代碼可以回答問題,但提供關於爲什麼和/或代碼如何回答這個問題的附加上下文會提高其長期價值。一個好的答案***將總是解釋所做的事情以及爲什麼這樣做,不僅是爲了OP,還是爲了將來訪問SO。 –