允许在正则表达式中使用字母数字的问号和其他字符的空格


Allowing question mark with alphanumeric and spaces with other characters in regex

我使用PHP preg_match()来检查正则表达式列表。该函数用于检查字母数字、空格、下划线、短划线、星号和问号。但除了问号和星号外,它只接受以上所有内容。

return (bool) preg_match('/^[a-z0-9 _-]+$/i', $str);

该功能是检查字母数字、空格、下划线、短划线、星号和问号,但它只接受除问号和星号之外的所有内容

因为在角色类中没有?*。尝试

return (bool) preg_match('/^['w*? -]+$/', $str);

'w已包含[A-Za-z0-9_]

请参阅regex101 上的演示

这是因为您需要对其他字符进行转义,因为它们是保留的特殊字符。

return (bool) preg_match('/^[a-z0-9 _-'?'*]+$/i', $str);