我需要一个非常具体的PHP函数。基本上,我有两个字符串作为参数,其中一个是包含可变长度(*)的通配符的模式,其中一个是匹配该模式的字符串。我需要从后一个字符串中获取一个字符串数组,以填充模式中的通配符。
例如:
最干净的方法是什么?请记住,这些并不总是英文单词串,如示例中所示,它们可以是任意随机字符。
答案 0 :(得分:2)
听起来像是家庭作业。这是一个没有任何实际代码的演练:
将模式标记为字符串和通配符。迭代令牌;每次目标字符串以常规(字符串,非通配符)标记开头时,请关闭该字符串。每次遇到通配符令牌时,找到字符串中下一个令牌的索引并修剪到该索引。存储它。如果在任何时候没有匹配,则返回false。如果在模式完成之前遇到字符串的结尾,则返回false。如果最终标记是通配符,则保存字符串的其余部分。
答案 1 :(得分:2)
您可以使用正则表达式等效替换通配符,并通过preg_match运行。
因为它确实听起来像家庭作业,我也不会给出任何特定的代码,但我会好好利用preg_replace(用正则表达式替换通配符)和preg_match(构建匹配子串的数组。)