2017-05-18 38 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。 –