php regexp如何捕获子串到变量

时间:2015-12-18 06:18:48

标签: php regex

在PHP中,如果我捕获一个字符串

<div align="center" style="position:fixed;left:0;right:0;"><h1>Welcome</h1></div>

如何从该字符串中捕获$string = 'gardens, countryside @teddy135'到php用户名中的新变量,以@username开头,前面有空格并以空格或字符串末尾结尾?

所以我最终会以

结束

@

2 个答案:

答案 0 :(得分:2)

使用以下正则表达式

\s@(\w+)\b

Regex101 Demo

  1. \s:匹配一个空格
  2. @:按字面意思匹配@
  3. (\w+):匹配一个或多个字母数字字符,包括_并将其放入第一个捕获组
  4. \b:字边界
  5. <强>代码:

    $re = "/\\s@(\\w+)\\b/"; 
    $str = "gardens, countryside @teddy135 @tushar and @abc"; 
    
    preg_match_all($re, $str, $matches);
    

答案 1 :(得分:0)

$regex = "/\s(@\S+)/"; 
$mystr = "gardens, countryside @teddy135 @xyz-12 and @abc.abc"; 

preg_match_all($regex, $mystr, $matches);
print_r($matches);