2012-07-11 49 views
0

我从来都不是很好用正则表达式,我有麻烦了一个preg_replace函数替换eregi_replace功能..ereg_replace到的preg_replace麻烦

这里是我的代码;

$Subdomein = ereg_replace("[^a-zA-Z0-9\-\.]","",$Subdomein); 
+0

看起来你是从剥离一切文本?你想用这个正则表达式来实现什么? – 2012-07-11 06:08:03

+0

不,我们有一个^,所以我们剥离了所有没有列出的东西(即'_','''标点符号等等。 – 2012-07-11 06:26:35

回答

0

我猜想导致ereg_replace函数的弃用,你想使用preg_replace。但他们都差不多。请参阅链接ereg_replacepreg_replace

试试这个...

$Subdomein = preg_replace("[^a-zA-Z0-9\-\.]","",$Subdomein);

+1

它不起作用,preg_replace使用它的第一个字符作为分隔符,所以它会将^解释为“字符串从这里开始“,然后在找不到与第一个字符匹配的”[“时出现错误,请参阅Joe Bowman的回答。 – LSerni 2012-07-11 06:36:29

2

我相信preg_replace()需要某种边界周围的表达:

preg_replace("/[^a-zA-Z0-9\-\.]/","",$Subdomein);