具有角色'ä'的Php正则表达式

时间:2013-10-08 18:47:22

标签: php regex

<?
    $s = '';
    $string1 = '<script>';
    $string2 = 'färsk';
    $string3 = 'öde';

    $rex = "/[\^<@\/\{\}\!\*\$%\?=≤>€:\|;#]+/i";
    if (preg_match($rex,$string1)) { $s = NULL; }
    if ($s === NULL) { echo 'null'; } else { echo "not null"; }
?>

为什么$ string2为空? 'ä'字符有什么特别之处?其他瑞典人,å和ö通过正则表达式。

欣赏我的正则表达式的任何修复。我希望它允许除了正则表达式中定义的特殊字符之外的所有内容。

编辑:


澄清: 我想要做的就是通过一系列特殊字符来除外。 $ string2和3都应该通过,$ string 1不应该(因为&lt;和&gt;)。

1 个答案:

答案 0 :(得分:3)

避免不必要的逃避。请参阅以下代码:

$string1 = '<script>';
$string2 = 'färsk';
$string3 = 'öde';

$rex = "/^[^<>@\/{}!*$%?=≤€:|;#]+$/u";

var_dump (preg_match($rex, $string1)); // false
var_dump (preg_match($rex, $string2)); // true as no special char in character class
var_dump (preg_match($rex, $string3)); // true as no special char in character class