php preg_match获得无与伦比的文本

时间:2011-02-25 11:32:09

标签: php

我正在使用preg_match函数,我希望用它获得不匹配的文本。 这是我的代码:

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

print_r($matches);
?>

我可以使用preg_match检索字符串中与上述字符串中的“abcdef”不匹配的部分吗?

2 个答案:

答案 0 :(得分:2)

$subject = "abcdef ghij";
$key = 'def';
$non_match = '';
if(preg_match("/^(.*)$key(.*)$/",$subject,$m)) {
        $non_match= $m[1].$m[2];
}

答案 1 :(得分:1)

更简单的方法是拆分字符串(explode或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 );