2009-12-10 69 views
0

我用这个干净的字符串:正则表达式来删除除字母数字和某些标点符号的所有字符

$clean = preg_replace("/[^a-zA-Z0-9\/_.;|+ -]/", '', $str); 

作品不错,但我需要添加到正则表达式的字符“&”也一样,我试图添加:

$clean = preg_replace("/[^a-zA-Z0-9\/_.;&|+ -]/", '', $str); 

$clean = preg_replace("/[^a-zA-Z0-9\/_.;\&|+ -]/", '', $str); 

但这不起作用,为什么呢? 我该怎么办? 非常感谢。

+0

试图逃脱那个字符? – yoda 2009-12-10 07:45:55

+0

嗨yoda,逃跑怎么样? – Maiori 2009-12-10 08:03:09

+0

它适合我。 'preg_replace(“/ [^ a-zA-Z0-9 \/_。;&| + - ] /”,'','&')'正好返回'&'。 – Gumbo 2009-12-10 08:19:28

回答

1

我不知道PHP的,但你可以尝试反斜杠反斜杠:\\&

+0

hello holub,mmm ..似乎不起作用:( – Maiori 2009-12-10 08:02:36

3

我想你的模式$clean = preg_replace("/[^a-zA-Z0-9\/_.;\&|+ -]/", '', $str);它似乎是工作的罚款对我来说,即使没有逃脱它...

试试这个工具来测试您的正则表达式 Regular expression tester

+0

@holub反斜杠反斜杠thingy dones在PHP中工作(atleast)它将做的是逃避反斜杠(“\”)而不是“&” – 2009-12-10 08:10:34

+0

看起来像是有效就好了 – 2009-12-10 08:20:17

+0

不错的工具!我喜欢它!!!!! – 2009-12-10 09:46:17

相关问题