dtxob80644 2010-04-24 19:03
浏览 200
已采纳

用于将用户名转换为Twitter等链接的正则表达式

in twitter when you write @moustafa will change to <a href='user/moustafa'>@moustafa</a> now i want make the same thing when write @moustafa + space its change @moustafa only

  • 写回答

5条回答 默认 最新

  • dsovc00684 2010-04-24 21:43
    关注

    One regular expression that could be used (shamelessly stolen from the @anywhere javascript library mentioned in another answer) would be:

    \B\@([a-zA-Z0-9_]{1,20})
    

    This looks for a non–word-boundary (to prevent a@b [i.e. emails] from matching) followed by @, then between one and 20 (inclusive) characters in that character class. Of course, the anything-except-space route, as in other answers; it depends very much on what values are to be (dis)allowed in the label part of the @label.

    To use the highlighted regex in PHP, something like the following could be used to replace a string $subject.

    $subject = 'Hello, @moustafa how are you today?';
    echo preg_replace('/\B\@([a-zA-Z0-9_]{1,20})/', '<a href="user/$1">$0</a>', $subject);
    

    The above outputs something like:

    Hello, <a href="user/moustafa">@moustafa</a> how are you today?
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?

悬赏问题

  • ¥15 Vue3 大型图片数据拖动排序
  • ¥15 划分vlan后不通了
  • ¥15 GDI处理通道视频时总是带有白色锯齿
  • ¥20 用雷电模拟器安装百达屋apk一直闪退
  • ¥15 算能科技20240506咨询(拒绝大模型回答)
  • ¥15 自适应 AR 模型 参数估计Matlab程序
  • ¥100 角动量包络面如何用MATLAB绘制
  • ¥15 merge函数占用内存过大
  • ¥15 使用EMD去噪处理RML2016数据集时候的原理
  • ¥15 神经网络预测均方误差很小 但是图像上看着差别太大