正则表达式只允许两个词:男性或女性

Ili*_*sev 0 php regex string preg-replace

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

我使用PHP函数返回:

return preg_replace( "/([male|female])/i", '', $data );
Run Code Online (Sandbox Code Playgroud)

目前,它消除了这些话,但我怎么删除绝对一切,只让
无论是男性还是女性

我在这里错过了什么?

p.s*_*w.g 5

您原来的模式将匹配任何m,a,l,e,|,或f字符.

你可能想要这样的东西:

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

或者在单行中:

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

这将匹配文字字符串male(前面是可选的文字字符串fe)并返回第一个匹配的结果.如果没有找到这样的匹配,它将返回一个空字符串.