从模式开始,从字符串中获取特定的字符串

时间:2018-10-15 19:08:39

标签: php string-matching

我收到这样的字符串:

class1 fa-dollar class2 class3

现在,我需要检查此字符串以查找包含fa-*的字符串/单词。如何使用PHP进行管理?

按字词作为代码

if(custom_strpos($myReceivedString, 'fa-')) {
    echo $faStringOnly;
    // output: 'fa-dollar'
}

谢谢。

1 个答案:

答案 0 :(得分:1)

让我们从两个代码示例开始:

$example = "class1 fa-dollar class2 class3";
if (preg_match_all('/(fa-\w+)/', $example, $matches)) {
  foreach ($matches[0] as $match) {
    print $match . "\n";
  }
}

$moreThan1 = "class1 fa-dollar class2 fa-other class3";
if (preg_match_all('/(fa-\w+)/', $example, $matches)) {
  foreach ($matches[0] as $match) {
    print $match . "\n";
  }
}

第一个示例是您的示例。我们正在使用preg_match_all来匹配所有实例。在您的示例中,只有一个。正则表达式匹配为/fa-\w+/,它表示“此匹配以fa-开始,然后具有1个或多个基于单词的字符。(我基于fa-dollar进行了此假设,是Font Awesome的课程。

找到的匹配项被放入$matches中,并且示例代码显示了如何遍历它们。

为证明此方法可用于多个匹配项,请参见第二个示例。