1

我看到了这个说法

$name = ereg_replace("[^A-Za-z0-9.]", "", $name);

[^A-Za-z0-9.]和 和有什么不一样[A-Za-z0-9.]

根据我对正则表达式的理解,[]用于在 function 中包含所有用于替换的有效字符ereg_replace

那么加入的目的是^什么[]

谢谢

4

1 回答 1

11

^字符类中的首字母[…]反转字符类中描述的字符集。While[A-Za-z0-9.]匹配由 描述的字符集中的一个字符A-Za-z0-9.[^A-Za-z0-9.]匹配除由 描述的字符之一之外的任何其他字符A-Za-z0-9.。这些其他字符是什么取决于定义字符串的基本字符集。

所以[abc]匹配a, b, 或c并且匹配除,和之外的[^abc]任何其他字符。您的示例代码将删除任何未描述的字符。那只剩下.abc[A-Za-z0-9.][A-Za-z0-9.]

于 2010-08-03T15:34:38.340 回答