我希望我的模式允许:a-z(可以有重音),A-Z(可以有重音符号),短划线,空格和点。 应该用哪种方式编写这种模式?
实际模式:
array('name','match', 'not' => true, 'pattern' => '/[^a-zA-Z0-9-\s]/')
答案 0 :(得分:2)
尝试以下正则表达式,我认为这正是您所需要的:
$str = 'hjkáÁdfgçÇhj.-hj'; // Matches your criteria
if(preg_match('/^[a-zA-ZÁ-ý\-\. ]+$/', $str))
echo 'match';
else
echo 'no match';
答案 1 :(得分:0)
^
内[]
的含义是 不 所以您需要的几乎相同:-)
/[a-zA-ZÁ-ý0-9-\s]/u
进一步详细说明您可能需要的是/^[a-zA-ZÁ-ý0-9-\s]+$/
,它允许整个字符串仅包含[]
内的内容以及您想要的内容(+
适用于{{1}}有的字符)
答案 2 :(得分:0)
array('name','match', 'not' => true, 'pattern' => ''^([a-zA-ZÁ-ý\-\. ]+)^'')