0

男性または女性の2 つの単語だけを SQL クエリに渡す必要があります。

次を返すPHP関数を使用します。

return preg_replace( "/([male|female])/i", '', $data );

現時点では、これらの単語を削除しますが、すべてを完全に削除して 、男性または女性の
いずれかのみを許可するにはどうすればよいですか?

ここで何が欠けていますか?

4

2 に答える 2

5

元のパターンはmale|、またはf文字と一致します。

おそらく次のようなものが必要です。

if (preg_match('/(fe)?male/i', $data, $match))
    return $match[0];
else
    return "";

またはワンライナーで:

return preg_match('/(fe)?male/i', $data, $match) ? $match[0] : "";

これは、リテラル文字列male(オプションのリテラル文字列が前に付いているfe) と一致し、最初に一致した結果を返します。そのような一致が見つからない場合、空の文字列が返されます。

于 2013-08-27T19:27:04.970 に答える
3

あなたが説明していることを行うには、おそらくこれを使用できます:

$str = preg_replace('/.*?((?:fe)?male).*/i', '$1', $str);

これにより、すべてが削除され、元の文字列femaleまたはmale文字列に配置されます。

コードパッドのデモ

于 2013-08-27T19:33:09.323 に答える