PHP 正则表达式仅匹配某些字符


PHP Regex to Match Only Certain Characters

我会检查用户是否提交了有效的标题。标题只能包含:

  1. 字母字符(小写或大写)
  2. 数字
  3. 空间
  4. 括弧
  5. 单引号
  6. 和双引号
  7. 检查标题是否仅用单引号或双引号填充规避上述正则表达式。

我怎样才能做到这一点?

下面是一个可行的示例:

/^(?!['"]+$)[a-z'd '(')'"]+$/i

正则表达式演示

要在 PHP 代码中使用它,请执行以下操作:

$str = 'foo234234bar()"""';
$regex = '/^(?![''"]+$)[a-z'd '(')''"]+$/i';
if (preg_match($regex, $str)) {
    echo "match found!";
} else {
    echo "no match";
}

PHP演示

这应该有效

if(
    preg_match('/^[a-z0-9] ](])'''"]+$/i',$string) && 
    strlen(preg_replace('/['''"]+/','',$string)))){
//passed
}
else{
//failed
}