我正在写一个PHP网页,它从搜索框中获取数据并使用它搜索mysql数据库并返回结果。目前它只是使用mySQL LIKE查询来提供所有的数据。这不是很灵活,因为它将数据视为一个精确表达式来匹配。PHP正则表达式。搜索双引号?
经过一个快速谷歌,我发现这个页面(http://www.iamcal.com/publish/articles/php/search/),我打算用它来扩展我的搜索网页的功能。
但是我有对网页教程两个查询:
1)本教程的第一部分是这样的:
$terms = preg_replace("/\"(.*?)\"/e", "search_transform_term('\$1')", $terms);
我不明白为什么*后跟?,据我了解。*表示一个字符(可以是任何字符)零次或多次,这意味着任何字符串。这个?意味着零次或一次。因此不。*?还意味着任何字符串?
2)我的第二个问题是,如何让表达式替换包含在发音标记中的表达式而不是括号?
我不确定你在2) – 2012-08-04 22:11:02
的意思是什么?preg_replace(“/\"(.*?)\"/e”,“search_transform_term('\ $ 1')”,$ terms);上面显示的函数用于查找所有括号对,并将其内容传递给search_transform_term以供进一步处理。我希望找到所有的语音标记对,并将其内容传递给search_transform_term以进一步处理。 – brnby 2012-08-04 22:18:43
它在我看来它匹配所有引号对,而不是括号。我不确定什么是语音标记! :) – 2012-08-04 22:21:43