2011-02-25 38 views
1

我正在使用preg_match函數,我想用它獲取不匹配的文本。 這是我的代碼:php preg_match獲取無與倫比的文本

<?php 
$subject = "abcdef ghij"; 
$pattern = '/^def/'; 
preg_match($pattern, $subject, $matches, PREG_OFFSET_CAPTURE); 

print_r($matches); 
?> 

我可以檢索字符串的一部分,未在上面的字符串匹配「ABCDEF」,使用的preg_match?

+0

請列舉一些可能的字符串,你想提取他們什麼。這樣我們可以找到更合適的正則表達式。 – BoltClock 2011-02-25 11:34:40

+0

我已添加我的代碼,請參閱 – 2011-02-25 11:36:22

回答

1

的簡單的方法是分割字符串(爆炸或使preg_split),然後運行的foreach和刪除無與倫比的零件

 
$subject = "abcdef ghij"; 
$subject = explode(" ", $subject); 
foreach($subject as $k => $v) if(preg_match("/abcdef/", $v)) { 
    unset($subject[$k]); 
} 
$subject = implode(" ", $subject); 
2
$subject = "abcdef ghij"; 
$key = 'def'; 
$non_match = ''; 
if(preg_match("/^(.*)$key(.*)$/",$subject,$m)) { 
     $non_match= $m[1].$m[2]; 
} 
+0

作品也可以,但可惜我只能接受1個答案在stackoverflow :) – 2011-02-25 11:58:15