1

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

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]

请纠正我的错误。

4

2 回答 2

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];

使该?组成为可选的。

于 2013-08-25T06:11:01.397 回答
1

如果它是单行如果文本你可以这样做:

if(substr($string, 2, 1) === "-"){
    echo substr($string, 3);
}else{
    echo $string;
}
于 2013-08-25T06:11:56.163 回答