【发布时间】:2012-07-18 17:45:35
【问题描述】:
在我的 php 程序中,我需要使用带或不带通配符的模式搜索具有文件路径和有关它的一些详细信息的混合字符串,如果此模式与字符串匹配,则它应该返回 true,否则返回 false。
示例:
$string="us01 /remote/ecishome/gussman/Sol_10 TEST WILLIAMS us01-000018 us01-000019 04/19/2012 04/19/2012 05/20/2012 Expired"
如果 $pattern= "/remote/*/guss*" 它应该匹配 true 或者如果 $pattern=will* 它应该返回 true 或者如果 $pattern="/remote/ecishome/gussman/Sol_10" 那么它也应该返回 true。
谁能建议我如何做到这一点。在这方面的任何帮助都是非常可观的。
现在我为此使用fnmatch(),但无法满足要求。
【问题讨论】:
-
这听起来像是 fnmatch() 的合理工作。当您尝试使用它时出了什么问题?
-
感谢您的回复,我正在使用下面的代码,但它不起作用,if(fnmatch($pattern,$string,FNM_NOESCAPE|FNM_PATHNAME|FNM_CASEFOLD)) { $match++; }
-
并且我的输入模式没有在通配符之前使用“\”进行转义,因为它是最终用户输入数据。
-
使用时会发生什么?你有错误吗?没有比赛?错误的比赛?它是否匹配某些模式但不匹配其他模式?
标签: php string search pattern-matching wildcard