当字符串每次都不同时,如何获取字符串的一部分

So I have a string that is retrieved from my database. The returned value could be laid out like

VD-6||CL-4

or just

VD-6

I need the value after the hyphen. so for instance if it returned

VD-12||CL-5  

I need to extract "12" from that string.

Any help is appreciated.

You could do this using Regular Expressions, or just the old fashion splitting method.

Let me give you an example on the second one:

$string = 'VD-12||CL-5';

$split = explode('-', $string);
$yourNumber = intval($split[1]); // $yourNumber = 12

But.... I would prefer fixing this with regular expressions. But it's really hard to give a concrete example of a regular expression without exactly knowing the requirements for the regex and the input. Same goes for my code example above, by the way. But I just went with the information you provided.

// get 12 out of VD-12||CL-5
// or get 6 out of VD-6

$string = "VD-12||CL-5";

//$string = "VD-6";

$strpos = strpos($string, '|');

if($strpos){
echo substr($string, strpos($string, '-') +1, $strpos-3);
}else{
echo substr($string, strpos($string, '-') +1);

}

But a bit mor information could be useful

demo