【问题标题】:How to distinguish between a @string and @@string?如何区分@string 和@@string?
【发布时间】:2015-08-31 10:47:30
【问题描述】:

给定一个字符串

$str="hello @jake and @@tim_24 and @@mike and @frank1 and @@ali_gi and @tom";

是否可以仅在one array 中提取所有以@ 开头的用户名以及在second array 中提取所有以@@ 开头的用户名?

这是我迄今为止尝试过的,

preg_match_all('~@([^\s]+)~', $str, $array);
print_r($array[0]);

问题在于它将每个用户名(以@@@ 开头)放在一个数组$array 中。

【问题讨论】:

    标签: php regex string text


    【解决方案1】:

    你可以试试这个,

    \B@@(\w+)|\B@(\w+)
    

    DEMO

    【讨论】:

      【解决方案2】:

      你可以这样使用:(?<!@)@([^@\s]+)(例如here)。

      匹配的名字将被放在第 1 组中。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-03-26
        • 1970-01-01
        • 2013-07-31
        • 2018-01-18
        • 2012-11-19
        • 2011-10-03
        相关资源
        最近更新 更多