PHP正则表达式保存以特定字符开头的单词


php regex save word starting withspecific character

虽然 Id 想通了,但需要你的帮助我需要在字符串中找到以 fa- 开头的单词以下作品

$anchor_css = $item->anchor_css;
if (preg_match_all("/fa'-('w+)/", $anchor_css, $fa)){   //look for a font awsome class name beginning with fa- if found the lass name is stored in $out[0][0]
    $anchor_css = preg_replace("/fa'-('w+)/", "", $anchor_css); //remove the font awsome class name starting with fa-
    $anchor_css = preg_replace("/fa/", "", $anchor_css);    //remove the fa prefix from the class
    $anchor_css = preg_replace('!'s+!', ' ', $anchor_css);  //remove multiple spaces and replace with a single space
}
$fa_icon = $fa[0][0] ? '<i class="fa '.implode(' ',$fa[0]).'" ></i>' :'';   //if a font awsome class name exists, create an <i></i> tag

以上适用于"测试 FA-信息 FA-LG"
结果是
anchor_css="测试"fa_icon= 'fa fa-info fa-lg'
但是它不适用于结果为anchor_css="测试"
fa_icon= 'fa fa-info fa-lg'

我知道它正在发生,因为''w没有暗示连字符,但不知道如何解决这个问题。 请帮忙。

虽然你的问题不是很清楚,但我想你需要在第 3 行中有这样的东西

$anchor_css = preg_replace("/fa[-_]('w+)/", "", $anchor_css);

如果你能解释更多你想要实现的目标,那么有人可以给你更好的解决方案。