PHP中的小正则表达式问题

时间:2010-03-06 15:05:16

标签: php regex preg-replace

我正在尝试字符串中的所有内容但是某种模式。

我的模式是:

$pattern = "/^[a-zA-Z0-9]+$/D";

我想做以下事情:

$string = preg_replace(anything but $pattern, "", $string);

我该怎么做?

谢谢!

2 个答案:

答案 0 :(得分:3)

使用字符类中的插入符号“ ^ ”表示您不需要这些字符。

$pattern = "/^[^a-zA-Z0-9]+$/D";

<强>解释

  

^否定字符类,使其匹配字符类中未列出的单个字符。 (如果放在开头[)

之后的任何地方,请指定插入符号

Source, regular-expressions.info

答案 1 :(得分:1)

$pattern = /^[^a-zA-Z0-9]+$/D

方括号^[之间的]将使得所有组都不匹配。这将从字符串的开头到结尾匹配,我不确定你是否也需要它。

$pattern = "[^a-zA-Z0-9]+?"

可以匹配字符串的所有部分,而这些部分与其他模式不匹配。