我正在使用preg_match函数,我希望用它获得不匹配的文本。 这是我的代码:
<?php
$subject = "abcdef ghij";
$pattern = '/^def/';
preg_match($pattern, $subject, $matches, PREG_OFFSET_CAPTURE);
print_r($matches);
?>
我可以使用preg_match检索字符串中与上述字符串中的“abcdef”不匹配的部分吗?
答案 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 );