位置: IT常识 - 正文

刘亦菲生日当天,引发了我对正则的思考(刘亦菲生日当天发素颜照)

编辑:rootadmin
前两天从网上采集到一条短视频数据(刷短视频),发现六公主连排5部刘亦菲主演的电影!甚是震惊,太有牌面了,看了一下日子是8月25号,嗷,原来当天是刘亦菲的生日。巧了,正好也是我家柴犬旺财的3岁生日😀。 言归正传,我们看到这条数据的 标题:#刘亦菲35岁生日获央视独宠# 神仙姐姐生日快乐! 为了分析数 ...

推荐整理分享刘亦菲生日当天,引发了我对正则的思考(刘亦菲生日当天发素颜照),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:刘亦菲生日宴,刘亦菲生日会,刘亦菲的生日是哪天,刘亦菲生日无人祝福,刘亦菲生日谁送祝福了,刘亦菲生日谁送祝福了,刘亦菲生日当天发素颜照,刘亦菲生日当天发素颜照,内容如对您有帮助,希望把文章链接给更多的朋友!

前两天从网上采集到一条短视频数据(刷短视频),发现六公主连排5部刘亦菲主演的电影!甚是震惊,太有牌面了,看了一下日子是8月25号,嗷,原来当天是刘亦菲的生日。巧了,正好也是我家柴犬旺财的3岁生日?。

言归正传,我们看到这条数据的

标题:#刘亦菲35岁生日获央视独宠# 神仙姐姐生日快乐!

为了分析数据,我们需要获取数据中所提到的话题#刘亦菲35岁生日获央视独宠#。提问:你能想到几种实现方式呢?欢迎评论区留言。

正则

想必细心看标题的朋友一定会猜到本文的主人公——正则,这玩意优点是写起来快,但缺点也显而易见,性能差,跟批处理一个德性,反人类的难记,长时间不用,每次都要重新学习,日常开发中也就偶尔写工具用一下。因此,我们只需要把常用的正则理解透就可以了,不要有心理包袱,看完本文,大部分的正则使用场景就可以活学活用。

场景一:匹配两个#之间的字符串

现在我们把需求转换成实现思路,想要获取上述数据中的话题,其实就是匹配两个#之间的文本内容,show code:

正则表达式:#.*?#

public static void main(String[] args) { String title = "#刘亦菲35岁生日获央视独宠# 神仙姐姐生日快乐!"; Pattern p = Pattern.compile("(#.*?#)"); Matcher m = p.matcher(title); while (m.find()) { String group = m.group(0); System.out.println("话题:" + group); } }

输出

话题:#刘亦菲35岁生日获央视独宠#

可以看出,输出的结果就是该条数据的话题,给大家分析一下这个正则表达式:.表示任意字符,?平时表示匹配0个或者多个,此时它表示不贪婪,那什么是贪婪呢?

说到贪婪,那就不得不提这两个限定符:* 和 + ,它们两个就是贪婪的!*表示匹配0个或者多个,+表示匹配至少一个,可以发现它们的共性:都会尽可能匹配更多。但,只要紧跟在它们的后面加上一个 ? ,让他们扪心自问,就可以实现非贪婪,即最小匹配。比如,我们在标题上再加一个#,此时标题变为#刘亦菲35岁生日获央视独宠## 神仙姐姐生日快乐!,然后正则表达式我们不使用?,此时,运行代码后输出结果为:

话题:#刘亦菲35岁生日获央视独宠##刘亦菲生日当天,引发了我对正则的思考(刘亦菲生日当天发素颜照)

比较两次的执行结果,我们会发现输出结果多了一#,这样就很贪婪,违背了我们的初衷,这就是?的妙用。

场景二:只匹配#开头的字符串

我们知道不同平台的话题格式是不一样的,比如抖音,它的话题形式就与微博不同,只是#开头,并没有成对的#与其呼应:

标题:#刘亦菲35岁生日获央视独宠 神仙姐姐生日快乐!

如果是这种形式的话题,爱动脑筋的朋友就会发现无非就是将后面的#变为一个空格或者多个空格呗。没错,我们可以使用

正则表达式:#.*?\\s+

public static void main(String[] args) { String title = "#刘亦菲35岁生日获央视独宠 神仙姐姐生日快乐!"; Pattern p = Pattern.compile("(#.*?\\s+)"); Matcher m = p.matcher(title); while (m.find()) { String group = m.group(0); System.out.println("话题:" + group); } }

输出

话题:#刘亦菲35岁生日获央视独宠

Tips:\s 表示匹配所有空白符,它不仅仅可以匹配空格,还可以匹配换行等空白字符,如果再加上+,组合起来就表示甭管几个空白字符,统统all in。

不过,不要高兴得太早,心细的小明还发现话题可能会存在文末的情况:

标题:神仙姐姐生日快乐!#刘亦菲35岁生日获央视独宠

此时是没有空白字符结束的,上面的正则就不满足这种情况。那如何是好?小明当时就想到了两个方案:

方案一:不管话题在不在文末,我们在匹配之前全部给标题追加一个空白字符,这样就可以人为干预,巧妙地避开了这种情况,曲线救国,便于正则匹配方案二:使用正则表达式#.*?$

Tips:方案二中的$ 是用来匹配输入字符串的结尾位置,组合起来就表示匹配#开头,一直到句末的话题。

进阶

前面两种场景我们虽然获取到了两个#之间或者#开头的内容,实现了需求,但是匹配的结果还是会带上#,贪婪的小明不满足现状(产品强制要求),可不可以不带呢?当然可以了!小明又想到了两个方案:

方案一:得到匹配的话题后,再二次文本处理去掉#方案二:使用正则表达式?<=和?=一步到位,直接去除#

使用方法

(?<=exp2)exp1:表示匹配 exp2 后面的 exp1exp1(?=exp2):表示匹配 exp2 前面的 exp1那结合以上我们实际使用的所有场景,最终这个理想的正则表达式就正式出炉(好热):((?<=#).*?(?=#|\s+))反应慢的朋友,可以慢点理解,我们先运行试一下(不自信): public static void main(String[] args) { String title = "#刘亦菲# #神仙姐姐 #生日快乐# #刘亦菲35岁生日获央视独宠"; Pattern p = Pattern.compile("((?<=#).*?(?=#|\\s+|$))"); Matcher m = p.matcher(title); while (m.find()) { String group = m.group(0); System.out.println("话题:" + group); } }

输出

话题:刘亦菲话题:话题:神仙姐姐话题:生日快乐话题:话题:刘亦菲35岁生日获央视独宠

Tips:正则表达式中的|表示或,即多项之间的一个选择,就像今天你看完本文,感觉不错的话,必须做出(关注|点赞|星标)其中的一个选择!从代码的输出结果我们可以看出,目前的正则是经得住实际考验的。但是唯一美中不足的是,会有空字符串的情况出现(产品不同意)。这该如何是好?目前小明的解决方案是,拿到匹配结果时,过滤掉空字符串。能解决问题的办法就是好办法。不过,肯定有更完美的表达式可以实现这个需求,此处抛砖引玉,期待你在评论区分享!

常用的正则表达式分享微信号(并不能帮你要到男神|女神的微信号)^[a-zA-Z][a-zA-Z\d_-]{5,19}$

未完待续……

本文链接地址:https://www.jiuchutong.com/zhishi/310518.html 转载请保留说明!

上一篇:OpenGL ES 名词解释(二)(openglskia是什么意思)

下一篇:mysql使用union的注意点(mysql的union语句)

  • 很多简单的道理不是谁都明白(很多简单的道理都不懂是什么原因)

    很多简单的道理不是谁都明白(很多简单的道理都不懂是什么原因)

  • 红米手表怎么调时间设置(红米手表怎么调整时间)

    红米手表怎么调时间设置(红米手表怎么调整时间)

  • 工行积分在哪里查看(中国工商银行积分在哪)

    工行积分在哪里查看(中国工商银行积分在哪)

  • 小度在家怎么强制解绑管理员(小度在家rom)

    小度在家怎么强制解绑管理员(小度在家rom)

  • 快手权限设置在哪里(快手权限设置在哪里找到)

    快手权限设置在哪里(快手权限设置在哪里找到)

  • wps发送文档咋是个问号(wps发送文档咋是乱码了)

    wps发送文档咋是个问号(wps发送文档咋是乱码了)

  • 苹果11运营商设置更新是什么意思(苹果11运营商设置更新)

    苹果11运营商设置更新是什么意思(苹果11运营商设置更新)

  • 云路由器是什么意思(云路由器是干啥的)

    云路由器是什么意思(云路由器是干啥的)

  • 为什么抖音只能发59秒视频(为什么抖音只能支付宝支付不能微信支付)

    为什么抖音只能发59秒视频(为什么抖音只能支付宝支付不能微信支付)

  • 华为有没有黑暗模式(华为手机有没有黑暗模式)

    华为有没有黑暗模式(华为手机有没有黑暗模式)

  • zp/a是什么版本的苹果(zp/a是什么版本的苹果手机)

    zp/a是什么版本的苹果(zp/a是什么版本的苹果手机)

  • 爱奇艺怎么找缓存视频(在爱奇艺里面缓存的内容在哪里?)

    爱奇艺怎么找缓存视频(在爱奇艺里面缓存的内容在哪里?)

  • 为什么微信图片会过期(为什么微信图片一直在发送中)

    为什么微信图片会过期(为什么微信图片一直在发送中)

  • 华为的siri叫什么(华为的Siri叫什么名字)

    华为的siri叫什么(华为的Siri叫什么名字)

  • 鼠标上的dpi键有什么用(鼠标上的dpi键有什么作用)

    鼠标上的dpi键有什么用(鼠标上的dpi键有什么作用)

  • 抖音能设置指定人看吗(抖音能设置指定人搜索不到自己吗)

    抖音能设置指定人看吗(抖音能设置指定人搜索不到自己吗)

  • 手机悬浮窗怎么关闭(手机悬浮窗怎么用)

    手机悬浮窗怎么关闭(手机悬浮窗怎么用)

  • 快手个人主页怎么找(快手个人主页怎么挂小黄车)

    快手个人主页怎么找(快手个人主页怎么挂小黄车)

  • 如何查找未保存的ppt文件(如何查找未保存的微信群)

    如何查找未保存的ppt文件(如何查找未保存的微信群)

  • 红米note9什么时候上市

    红米note9什么时候上市

  • blued注册时候如何通过人脸验证(blued注册方式)

    blued注册时候如何通过人脸验证(blued注册方式)

  • 奇异果能看电视频道吗(奇异果能看电视剧吗)

    奇异果能看电视频道吗(奇异果能看电视剧吗)

  • 蚂蚁森林怎么清空动态(蚂蚁森林怎么清除桌面上的动态)

    蚂蚁森林怎么清空动态(蚂蚁森林怎么清除桌面上的动态)

  • 苹果实况壁纸怎么没声音(苹果实况壁纸怎么下载)

    苹果实况壁纸怎么没声音(苹果实况壁纸怎么下载)

  • 华为p20屏幕上有个圈圈怎么关(华为p20屏幕上有图案怎么去除)

    华为p20屏幕上有个圈圈怎么关(华为p20屏幕上有图案怎么去除)

  • 怎么设置airpods的麦克风(怎么设置airpods弹窗)

    怎么设置airpods的麦克风(怎么设置airpods弹窗)

  • 如何在苹果电脑上使用淘宝旺旺购买商品(如何在苹果电脑上删除软件)

    如何在苹果电脑上使用淘宝旺旺购买商品(如何在苹果电脑上删除软件)

  • 最小iPhone充电器是什么(苹果最小的充电器是哪一款)

    最小iPhone充电器是什么(苹果最小的充电器是哪一款)

  • 自然人电子税务报税流程
  • 延期缴税申请需要先申报吗?
  • 房产税的计税基础包括契税吗
  • 环保税的纳税义务人是施工方还是建设方安徽
  • 总账一级科目有哪些
  • 公司股东分红要交哪些税
  • 股权转让开票怎么做账
  • 同业清算交易渠道
  • 小规模纳税人未开票收入填在哪里
  • 房地产会计预收账款明细科目
  • 公司用股东的钱交税吗
  • 外币借款汇兑差额资本化额怎么计算
  • 企业清算的所得税处理包括哪些内容
  • 项目结余是什么意思
  • 附加税税种认定不完整是什么意思
  • 预缴企业所得税分录
  • 企业的其他业务收入有
  • 外购商誉是资产吗
  • 出口退税进口免税
  • 施工企业原材料用于
  • 城镇土地使用税每年都要交吗
  • 鸿蒙系统如何截屏
  • win11卓越性能模式
  • 企业报税流程图
  • 个体工商户投资金额填多少
  • mac电脑新手使用
  • 微博 照片水印
  • win10待机界面进不去系统怎么办
  • 股票交易税怎么算出来的
  • 分期付款购买固定资产折现率怎么算
  • 鸟瞰视野
  • 股权指的是
  • 向农户收购农产品怎么打款
  • 辅导期纳税人注意事项
  • 研发费用加计扣除新税收政策
  • 除湿器属于固定资产什么类别
  • php操作字符串函数
  • three.js gui
  • php 冒泡
  • python功能强大而深受欢迎的原因
  • 深度学习中的FPN详解
  • vuecli项目实战
  • 房租的计算方式
  • 留购价计入什么费
  • 织梦系统网站搭建教程
  • mongodb主键
  • 固定资产折旧常见方法
  • 在建工程账务怎么会转到预收账款
  • 财务负责人岗位要求
  • 企业成本计算的依据是什么
  • 蓝字发票作废流程视频
  • 提取安全生产费用是什么意思
  • 防伪税控服务费全额抵扣申报表怎么填
  • 实际验收入库是什么科目
  • 预提费用处理
  • 销售费用和管理费用的税前扣除
  • 半成品仓库的管理办法
  • win7资源管理器未响应怎么办
  • os x yosemite dp5下载地址 os x 10.10 dp5更新内容
  • win7系统怎么更改默认浏览器
  • Win10最新版下载天翼云盘
  • win8 控制面板
  • bat for do
  • 关于我和鬼变成家人的那件事
  • unity如何合并物体
  • shell产生随机字符串
  • cocos2d教程
  • firefox允许弹出窗口
  • node 操作mysql
  • node.js mac
  • 20行的python编程题
  • 基于javascript的毕业设计选题
  • JavaScript的函数定义
  • javascript面向对象编程指南 pdf
  • 国家企业税务总局
  • 企业填写莞e申报的通知
  • 税收征收管理与税收大数据分析
  • 山东省梁山县属于什么市?
  • 税务有哪些方面
  • 房地产的土地增值税怎么交
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设