2016-09-14 136 views
-3

我需要從如下所示的字符串匹配之間精確的字符串:正則表達式來匹配兩個定界符

27,B661|27,071315S|27,B2843|2,355516|27,ASB844|27,H994|28,073126| 

基本上,我想匹配一個逗號後的確切文字,但豎線之前。所以'B661'會匹配。 'B66'本身不會匹配。似乎無法弄清楚這一點!

+0

很好。祝你好運。你有編程問題嗎?這個網站是針對問題的,而不是轉儲您的待辦事項列表或(缺少)進度報告的地方。 –

+0

類似'\,[^ \ |]'。進一步調整。 –

+0

只是'爆炸'它。 –

回答

1

要麼explode()它@Wiktor說的兩倍(!);

<?php 

$string = "27,B661|27,071315S|27,B2843|2,355516|27,ASB844|27,H994|28,073126|"; 

$arr = explode("|", $string); 
foreach ($arr as $item) { 
    list($key, $value) = explode(",", $item); 
    echo "$key: $value\n"; 
} 

?> 

或用相似的正則表達式:

(?<=,)\w+(?=|) 

a demo on regex101.com

+0

感謝您的答覆...嘗試使用爆炸之前,我張貼,但想找到更乾淨的東西。實際上結束了使用strpos。 – lbn

+1

*「在我發佈之前嘗試使用爆炸」* - 下一次,請包括您在原始帖子中嘗試的內容。 –