识别并显示字符串中的禁用字符

时间:2011-09-12 17:01:23

标签: php regex string character identify

我正在尝试在PHP中找到最好的方法:

我必须分析一个字符串。

禁止使用某些字符(即:逗号,半字母,空格,百分比......但它可以是我想要的任何字符,而不仅仅是标点符号!)

我想在字符串中打印FOR FOR EACH禁止字符:

$string = "My taylor, is rich%";

分析后,我想打印:

Character COMMA is forbidden
Character PERCENTAGE is forbidden

对于具有相同字符的多个错误,summum可能只有一行。

你们有些人遇到过这样的问题吗?

我尝试了REGEX和STRPOS,但没有显着的结果。

1 个答案:

答案 0 :(得分:4)

使用preg_match_all

$forbidden = "/[,;%]/";
$string = "My taylor, is rich%; he is breaking my bank, natch";
$matches = null;
preg_match_all($forbidden, $string, $matches);
$chars = $matches ? array_unique($matches[0]) : array();

foreach ($chars as $char) {
    echo "Character {$char} is forbidden\n";
}

以上的输出是:

Character , is forbidden
Character % is forbidden
Character ; is forbidden

preg_match_all将返回$forbidden正则表达式的所有实例。您可以根据需要调整该正则表达式中的字符。 array_unique将消除重复。

最后,我只是在输出中输出字符本身。如果你想要“COMMA”,“PERCENTAGE”等字样,你必须为此创建一个哈希值。