0

正規表現に関しては愚かで申し訳ありませんが、私はこれに問題があります:

$search=trim(preg_replace('@ [a-z]{1,2}s? @',' ',' '.$search.' '));

私が見る限り、それはすべての小文字の 2 文字の単語と、「s」で終わる小文字の 3 文字の単語をすべて削除するはずです。

機能しない部分は、"s" で終わる小文字 3 文字の単語を削除しないことです。

何か案は?

ありがとう。

例を参照してください: http://codepad.org/yUpyn8KU

4

4 に答える 4

1

これを試して:

ここにそれはCodepadにあります

<?php 
 $string = "ver ae as ads dase asda frasad ae aes ads ad hag hags";
 $result = trim(preg_replace('/\b([a-z]{1,2}|[a-z]{2}s)\b/',' ',' '.$string.' '));
 echo $trim = preg_replace('/[\s]+/',' ',$result);
?>

ここにそれはCodepadにあります

お役に立てれば。

于 2012-05-02T07:43:19.290 に答える
1

これで修正されます。

$search=trim(preg_replace('@\b[a-z]{1,2}s?\b@','',$search));
$search=preg_replace('@\s+@',' ',$search);

皆様、ご協力ありがとうございました。

于 2012-05-02T07:41:59.403 に答える