使用preg_match_all获取特定字符串

时间:2013-08-25 06:08:46

标签: php string preg-match-all

我想在“ - ”之后找到正好在第3个位置的字符串,如果找不到“ - ”则应该得到整个字符串。 样本数据

TT-people // get people
1V-NEWTET // get NEWTET
ZZ-YESforTHE // get YESforTHE
Computer // get Computer
T-Book // get T-Book

我试过

$result=preg_match_all("/^[a-zA-Z0-9]2-(\s\w*)/",$data,$networkID);
echo $networkID[0][1]

请纠正我的错误。

2 个答案:

答案 0 :(得分:1)

[a-zA-Z0-9]2

这里的2只匹配字符“2”。看起来你的意思是{2}

要反映您更新的问题,它应如下所示:

$result = preg_match_all('/^(?:[a-zA-Z0-9]{2}-)?(\s\w*)/', $data, $networkID);
echo $networkID[0][1];

?使该组可选。

答案 1 :(得分:1)

如果单行可以做文本:

if(substr($string, 2, 1) === "-"){
    echo substr($string, 3);
}else{
    echo $string;
}