2012-11-29 117 views
0

我有一个看起来像这样的模式:的Preg匹配多个单词

$my_pattern = "/(^|[\n\r\f\t \.\,])" . $my_text . "([\n\r\f\t \.\,]|$)/iu" 

我有几个的话,可能是$ my_text,我正在寻找一种方式做一个预浸匹配所有的人。我知道我可以做一个foreach,并为每次迭代更改$ my_text,但我怎么能在一步之内完成此操作?

所以,如果我有my_textes = array("my_text1", "my_text2");阵列和句子是这样的:

“我找my_text1也my_text2”,

我希望能够找到my_text1和my_text2。

谢谢!

+0

使用preg_match_all:http://php.net/manual/en/function.preg-match-all.php –

+0

你想匹配包含所有my_textes单词或任何my_textes词串? –

+0

$ my_pattern =“/(^ | [\ s。,])”。 $ my_text。 “([\ S,] | $)/ IU”;你的模式可以写成这样btw。因为它们在字符类中,所以您不需要跳过句点或逗号,\ s将等于任何空格字符。 = O) –

回答

0

打开正则表达式弄成这个样子:

$my_pattern = "/(^|[\s.,])(my_text1|my_text2)([\s.,]|$)/iu"; 

的破灭功能将帮助你在这里。

Code example