我正在尝试在PHP中找到最好的方法:
我必须分析一个字符串。
禁止使用某些字符(即:逗号,半字母,空格,百分比......但它可以是我想要的任何字符,而不仅仅是标点符号!)
我想在字符串中打印FOR FOR EACH禁止字符:
$string = "My taylor, is rich%";
分析后,我想打印:
Character COMMA is forbidden
Character PERCENTAGE is forbidden
对于具有相同字符的多个错误,summum可能只有一行。
你们有些人遇到过这样的问题吗?
我尝试了REGEX和STRPOS,但没有显着的结果。
答案 0 :(得分:4)
$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”等字样,你必须为此创建一个哈希值。