2013-08-25 41 views
1

我想找到字符串後一個特定的字符串「 - 」這正是在第三的位置,如果沒有找到「 - 」它應該得到整個字符串。 樣本數據是獲取使用preg_match_all

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] 

請糾正我的錯誤。

+0

謝謝你的答案,有一件事我已經忘了提,如果「 - 」沒有找到它應該得到整個字符串 – newcomer

回答

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

?,使組可選。

+0

Thsnks期待你的答覆。我很遺憾地說我錯過了我的問題中的一點。現在我編輯了我的問題 – newcomer

+0

@newcomer:好的 - 請參閱編輯。 – Ryan

+0

我嘗試print_r($ networkID);但顯示一個空白數組。 – newcomer

1

如果單行文本是否可以這樣做:

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

Thsnks爲您的答覆。我很遺憾地說我錯過了我的問題中的一點。現在我編輯了我的問題 – newcomer