q09*_*987 1 regex character-class
我看到了这个说法
$name = ereg_replace("[^A-Za-z0-9.]", "", $name);
Run Code Online (Sandbox Code Playgroud)
[^A-Za-z0-9.]和之间有什么区别[A-Za-z0-9.]?
根据我对正则表达式的理解,[]用于包括函数中替换的所有有效字符ereg_replace.
然后包括^进入的目的是[]什么?
谢谢
Gum*_*mbo 11
^字符类中的初始值会[…]反转字符类中描述的字符集.虽然[A-Za-z0-9.]所描述的字符集的字符匹配A-Za-z0-9.,[^A-Za-z0-9.]匹配除了所描述的字符之一的任何其他字符A-Za-z0-9..这些其他字符的含义取决于字符串定义的基本字符集.
所以[abc]匹配要么a,b或c与[^abc]任何其它字符匹配除a,b和c.您的示例代码将删除任何未描述的字符[A-Za-z0-9.].这只留下了人物的角色[A-Za-z0-9.].