2012-08-10 114 views
1

我想从文本删除了这些话:多个匹配

约翰·杰克大卫

我写这个表达式:

(John|Jack|David) 

但它消除John(第一场比赛)并且不匹配另外两个单词。

我应该使用修饰符吗?哪一个?

回答

2

在PHP中,你需要以匹配所有出现使用preg_match_all()

preg_match_all("/(John|Jack|David)/", $subject); 
+0

发现后如何更换? – mrdaliri 2012-08-10 13:46:20

+0

@kikio:'preg_replace'默认是全局的(没有'preg_replace_all','preg_replace'会查找并替换所有的匹配项)。 – 2012-08-10 13:47:09

+0

是的,但为什么在这段代码中,它不起作用? http://codepad.org/4w4EIRw4 – mrdaliri 2012-08-10 14:02:23

0

你不提语言,但在Javascript中它应该是这样的:

'John Jack David'.replace(/John|Jack|David/g, 'hans'); 
+0

我很抱歉,我使用PHP'preg_replace'和'g'修改不工作.. – mrdaliri 2012-08-10 13:42:47

+0

我可以回答,如果你曾经提到的PHP :) – 2012-08-10 14:23:48

+0

是的,我认为这并不重要。无论如何,对不起。 – mrdaliri 2012-08-10 14:26:28