位置: 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语句)

  • 笔记本桌面最下面一排失灵(笔记本桌面最下面一连网一排失灵)

    笔记本桌面最下面一排失灵(笔记本桌面最下面一连网一排失灵)

  • 毒可以分期付款吗(毒分期付款有利息吗)

    毒可以分期付款吗(毒分期付款有利息吗)

  • 华为手机出现volte怎么关闭(华为手机出现voice图标)

    华为手机出现volte怎么关闭(华为手机出现voice图标)

  • 网线没标怎么看几类线(网线没有标记如何分辨)

    网线没标怎么看几类线(网线没有标记如何分辨)

  • 微信超过五分钟的视频怎么发给朋友(微信聊天超过2分钟怎么撤回)

    微信超过五分钟的视频怎么发给朋友(微信聊天超过2分钟怎么撤回)

  • 剪映黑屏了怎么回事(剪映黑屏了怎么恢复)

    剪映黑屏了怎么回事(剪映黑屏了怎么恢复)

  • 系统跑批中什么意思(系统跑了)

    系统跑批中什么意思(系统跑了)

  • usb线是充电线吗(usb电源线是不是就是充电器)

    usb线是充电线吗(usb电源线是不是就是充电器)

  • 华为an90是什么型号(华为an90是什么型号的手机)

    华为an90是什么型号(华为an90是什么型号的手机)

  • dv机是什么(dv机是什么输出接口)

    dv机是什么(dv机是什么输出接口)

  • 码率越高越清晰吗(码率越高画质越好吗)

    码率越高越清晰吗(码率越高画质越好吗)

  • 联想legion什么意思(legion 联想)

    联想legion什么意思(legion 联想)

  • 服务器内存条可以用在台式机上吗(服务器内存条可以用在什么主板)

    服务器内存条可以用在台式机上吗(服务器内存条可以用在什么主板)

  • iphonex顶部红点闪烁怎么弄(iphonex顶部红点闪烁不亮)

    iphonex顶部红点闪烁怎么弄(iphonex顶部红点闪烁不亮)

  • oppo处理器是什么(oppo处理器最好)

    oppo处理器是什么(oppo处理器最好)

  • icloud退出不了怎么办(apple icloud退出不了)

    icloud退出不了怎么办(apple icloud退出不了)

  • otdr是什么(otdr有什么作用)

    otdr是什么(otdr有什么作用)

  • vivox21屏幕闪烁怎么办(vivox21手机屏幕一闪一闪的是怎么回事)

    vivox21屏幕闪烁怎么办(vivox21手机屏幕一闪一闪的是怎么回事)

  • 卸载软件后实名认证还在吗(卸载软件后实名认证还在怎么办)

    卸载软件后实名认证还在吗(卸载软件后实名认证还在怎么办)

  • 苹果手机怎样蹭热点别人的(苹果手机怎样蹭网不用密码)

    苹果手机怎样蹭热点别人的(苹果手机怎样蹭网不用密码)

  • 如何将陌陌钱包内的钱提现(怎么把陌陌钱包里的钱转到微信里)

    如何将陌陌钱包内的钱提现(怎么把陌陌钱包里的钱转到微信里)

  • qq轻聊版如何退出(qq轻聊版怎么卸载)

    qq轻聊版如何退出(qq轻聊版怎么卸载)

  • wps勾怎么打出来(wps勾怎么打出来手机)

    wps勾怎么打出来(wps勾怎么打出来手机)

  • 一种使用Java的快速将Web中表格转换成Excel的方法(在java中有一种叫做)

    一种使用Java的快速将Web中表格转换成Excel的方法(在java中有一种叫做)

  • 没有关系的话,那就去建立关系吧(没有关系怎么表达)

    没有关系的话,那就去建立关系吧(没有关系怎么表达)

  • Python中pdb设置断点(python设置断点)

    Python中pdb设置断点(python设置断点)

  • DedeCMS 友情链接按分类网站类型调用的方法(html友情链接模板)

    DedeCMS 友情链接按分类网站类型调用的方法(html友情链接模板)

  • 信息化投入包括手机吗
  • 职工福利费计税税率
  • 撤销增值税申报流程
  • 企业所得税和增值税重复收税了吗
  • 滑准税是指关税的税率
  • 税务定税按什么标准
  • 未能确认收入的原因
  • 投资收益可以计入营业收入吗
  • 异地工程预缴税有哪些流程
  • 销售商品房属于什么税
  • 专票红冲后还需重新开票吗
  • 发票认证完是不是没开票
  • 餐饮招待怎么入账
  • 财产租赁所得个人所得税计算方法2020
  • 企业所得税属于什么科目
  • 红字发票需要做什么科目
  • 分公司背书给总公司
  • 化妆品消费税是从价还是从量
  • 自然人出租房屋房产税
  • 自持是啥意思
  • 填报企业所得税资产总额怎么填
  • 固定资产提前报废
  • 固定资产原值变更当月计提折旧
  • 实际缴纳的增值税税额怎么算
  • 发生的业务招待费属于什么科目
  • 按揭购入固定资产怎么算
  • 单位低价向职工售房个人所得税计算
  • 出售固定资产增值税税率最新2022
  • 基建期增值税如何抵扣
  • 苹果14pro max价格
  • php的数组函数
  • js设置input值
  • 如何补办二手车牌照
  • pytorch model.module
  • 什么情况需要缴纳增值税
  • 支付劳务公司的劳务费计入应付账款还是其他应付款
  • 安格雷尔
  • zendstudio怎么创建php项目
  • thinkphp5教程
  • 前端使用vue的好处
  • 物业收取停车费需要业主同意吗
  • 公司进项抵税
  • 酒店低值易耗品怎么摊销
  • mysql写日志机制
  • sql2005怎么执行语句
  • 故障的机器修好多少钱
  • 外贸出口企业如何申报增值税
  • 如何确定交易性金融资金
  • 买赠销售账务处理
  • 跨月报销的算当月还是上个月的
  • 定期存款账务怎么处理
  • 去年漏记了收入,可以记今年吗
  • 出售子公司股权合并报表的会计处理
  • 企业取得的财政拨款
  • 诉讼费用负担原则是什么
  • 税票名称开错了有影响么
  • 支付代理费计入什么科目
  • linux没有ssh
  • win 8怎么样
  • win7系统备份需要多大空间
  • ubuntu系统启动流程
  • msoobe命令
  • cocos2d怎么用
  • cocos 2d x
  • 安卓画图板
  • js onkeypress与onkeydown 事件区别详细说明
  • unity编译速度吃什么硬件?
  • android图库
  • python scripy
  • jquery 使用
  • dom事件模型由什么组成
  • Python遍历循环
  • javascript post语法
  • 重庆市国家税务局电话
  • 江苏税务怎么在手机上办
  • 怎么在开票系统导出开票明细
  • 10%加计抵减政策条件
  • 请问农村自建房彩钢瓦下面修房吊什么顶好
  • 减免税办理
  • 个人所得税没申报会退吗
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设