在 PHP 中获取与通配符匹配的字符串

问题描述 投票:0回答:2

我需要 PHP 中的一个非常具体的函数。基本上,我有两个字符串作为参数,其中一个是包含可变长度通配符 (*) 的模式,另一个是与该模式匹配的字符串。我需要从后一个字符串中获取一个字符串数组,用于填充模式中的通配符。

例如:

  • 参数1:“这是我*的*字符串”
  • 论点 2:“这是我自己创建的很棒的字符串”
  • 返回:数组(“我的真棒”,“我自己创造”)

最干净的方法是什么?请记住,这些并不总是像示例中那样的英语单词字符串,它们可以是任何随机字符。

php regex wildcard
2个回答
2
投票

您可以将通配符替换为等效的正则表达式,然后通过 preg_match 运行它。

因为它确实听起来像家庭作业,所以我也不会给出任何具体代码,但我会充分利用 preg_replace (用正则表达式等效项替换通配符)和 preg_match (构建匹配数组子串)。


2
投票

听起来像家庭作业。这是一个没有任何实际代码的演练:

将模式标记为字符串和通配符。迭代令牌;每次目标字符串以常规(字符串、非通配符)标记开头时,修剪该字符串。每次遇到通配符标记时,查找字符串中下一个标记的索引并修剪到该索引。存储它。如果任何时候没有匹配,则返回 false。如果在模式完成之前遇到字符串结尾,则返回 false。如果最终标记是通配符,则保存字符串的其余部分。

© www.soinside.com 2019 - 2024. All rights reserved.