2011-05-03 99 views
0

好吧,我需要一行php-ready正则表达式,其中包含一些关键字和关键字,并且至少匹配其中的一个。例如:PHP正则表达式匹配单词和关键短语

Keyterms:
* “苹果”
* “香蕉”
* “草莓”
* “梨糕”

现在,如果这些关键术语的发现,然后返回真正。然而,在这里增加一点难度,“梨饼”一词应该被分成两个关键词,它们必须都在字符串中,但不必在一起。

例字符串应该返回true:
*蛋糕很大,从梨
*我喜欢苹果
*我喜欢苹果和香蕉 *我喜欢梨的蛋糕和苹果制成
*我喜欢由梨制成的蛋糕

注意。我不需要端字边界,允许复数等等

感谢您的帮助,只是不能让我的身边正则表达式的头......

回答

1
/\bapple|\bbanana|\bstrawberry|\bpear.*?\bcake|\bcake.*?\bpear/ 

如果您不需要开始词边界或者删除\ b's,但是然后cranapple也会匹配。

+0

这是完美的,感谢您的帮助 – domnissient 2011-05-03 03:49:48

+0

任何机会,你可以帮助创建一个PHP函数来生成给定的数组的正则表达式。问题是张贴在这里[链接](http://stackoverflow.com/questions/5864856/php-regex-generator) – domnissient 2011-05-03 04:00:18

0

如何:

/apple|banana|strawberry|pear.*?cake|cake.*?pear/ 

如果要匹配苹果或苹果,蛋糕或蛋糕。然后将\ b添加到每个单词并在末尾添加s?\ b。