【发布时间】:2014-11-14 21:53:07
【问题描述】:
让我清楚我想要实现的逻辑。
- 我在 DB 中有很多 cmets 和主题词
- 我想通过正则表达式匹配评论中的主题词。
- 匹配词将在 DB 上查询并获取其 topicid 并应用主题进行评论以生成标签云。
但是以“@”和“#”开头的任何单词在 preg_match_all 模式中都不起作用,例如。
$pattern = '/\b(\@abdulcollo|tuskys|\#teamBata|50\% off|baby|\@mystic_false)\b/i';
$string = 'Anga lonely everyday RT @Mystic_False: Heehe @AbdulCollo aneno ka idhi tuskys in lonely woman bana #TeamBata in Kakamega baby! @danaceda @kibalimoreithi @olivermathenge @batakenya @ Tuskys Mega Mall 50% off';
preg_match_all($pattern, $string, $matches);
var_dump($matched) 返回数组下方。
$matches = array('tuskys', 'baby', '50% off');
但我也想拥有'@abdulcollo','#TeamBata','@Mystic_False',我已经逃脱了“@ " 和 "#" 但它们仍然没有匹配...!
非常感谢任何帮助,我想要纯 PHP 的逻辑。
注意:我在为标签词创建模式时将所有内容都小写,例如,小写词也会降低整个评论字符串,所以这不是任何问题。
【问题讨论】:
标签: php regex preg-match-all