• 实现微博中的‘@用户名’和‘#话题#’的正则表达式


    【一】匹配 @用户名 
    首先分析下微博中从哪里开始到哪里结束才是一个完整的用户名,按照常规的表现形式,一般是以@开头,以:结尾,中间为用户的名称。 
    匹配表达式就可写为: @[^::]+ 
    这是简单的写法,但是有些是在微博之后再@的,还有就是连续@的情况,还有些是以逗号等结束的,因此完善一下 
    修改为: @[^,,::s@]+ 
    但是这些匹配都是从形式上进行了一个大概的归类,但是为了更为严谨,就要彻底分析其用户名的具体格式,例如新浪微博中的用户名格式为是“4-30个字符,支持英文、数字、"_"或减号” 
    ,也就是说,支持中文、字母、数字、下划线及减号,并且是4到30个字符(这里暂且认为汉字为一个字符)那么在写匹配的表达式的时候就可以这么来写: 
    @[u4e00-u9fa5a-zA-Z0-9_-]{4,30} 
    转换为php可用正则:
    preg_match_all('/@([\x{4e00}-\x{9fa5}a-zA-Z0-9-_]{2,30})+/u', $content, $matches)
    若需要带小数点:
    '/@([\x{4e00}-\x{9fa5}a-zA-Z0-9-_.]{2,30})+/u' 【二】匹配 #话题# 这个相对相对就简单了很多,前后都是#,以#号开始并以#结束 匹配表达式写为: #[
    ^#]+#
  • 相关阅读:
    spring-base.xml
    计算和证明施密特正交,写的很清楚
    推理
    存在某种关系时,推理存在新关系
    PyCharm 技巧
    3#记录
    2#记录
    一文揭秘!自底向上构建知识图谱全过程
    1#记录
    本体建模小结
  • 原文地址:https://www.cnblogs.com/ygcool/p/8717391.html
Copyright © 2020-2023  润新知