男性または女性の2 つの単語だけを SQL クエリに渡す必要があります。
次を返すPHP関数を使用します。
return preg_replace( "/([male|female])/i", '', $data );
現時点では、これらの単語を削除しますが、すべてを完全に削除して
、男性または女性の
いずれかのみを許可するにはどうすればよいですか?
ここで何が欠けていますか?
男性または女性の2 つの単語だけを SQL クエリに渡す必要があります。
次を返すPHP関数を使用します。
return preg_replace( "/([male|female])/i", '', $data );
現時点では、これらの単語を削除しますが、すべてを完全に削除して
、男性または女性の
いずれかのみを許可するにはどうすればよいですか?
ここで何が欠けていますか?
元のパターンはm
、a
、l
、e
、|
、または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
) と一致し、最初に一致した結果を返します。そのような一致が見つからない場合、空の文字列が返されます。
あなたが説明していることを行うには、おそらくこれを使用できます:
$str = preg_replace('/.*?((?:fe)?male).*/i', '$1', $str);
これにより、すべてが削除され、元の文字列female
またはmale
文字列に配置されます。