0

我只需要让两个词进入 SQL 查询:男性女性

我使用返回的 PHP 函数:

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

目前它删除了这些词,但我如何完全删除所有内容,只 允许男性
女性

我在这里想念什么?

4

2 回答 2

5

您的原始模式将匹配任何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)并返回第一个匹配的结果。如果没有找到这样的匹配,它将返回一个空字符串。

于 2013-08-27T19:27:04.970 回答
3

要执行您所描述的操作,您也许可以使用以下方法:

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

这将删除所有内容并放回femalemale放入字符串中。

键盘演示

于 2013-08-27T19:33:09.323 回答