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

  • 小米之家可以换电池吗(小米之家可以换网卡吗)

    小米之家可以换电池吗(小米之家可以换网卡吗)

  • 网易云怎么换头像(网易云怎么换头像背景)

    网易云怎么换头像(网易云怎么换头像背景)

  • vivos12与12pro区别(vivos10pro和苹果12参数对比)

    vivos12与12pro区别(vivos10pro和苹果12参数对比)

  • 微信不用图片的情况下怎么发朋友圈(怎样用微信不用放图片)

    微信不用图片的情况下怎么发朋友圈(怎样用微信不用放图片)

  • 大v是什么意思(网络上大v是什么意思)

    大v是什么意思(网络上大v是什么意思)

  • 华为9x和8x有什么区别(华为8x和9x有什么区别哪个值得入手)

    华为9x和8x有什么区别(华为8x和9x有什么区别哪个值得入手)

  • 谷歌浏览器打开就崩溃怎么办(谷歌浏览器打开是2345浏览器)

    谷歌浏览器打开就崩溃怎么办(谷歌浏览器打开是2345浏览器)

  • WPS怎么隐藏表格不需要的部分(wps怎么隐藏表格中的几列内容)

    WPS怎么隐藏表格不需要的部分(wps怎么隐藏表格中的几列内容)

  • 芒果tv在哪里退出登录(芒果TV在哪里退款)

    芒果tv在哪里退出登录(芒果TV在哪里退款)

  • 华为nova4指纹锁怎么设置(华为nova4指纹锁怎么不见了)

    华为nova4指纹锁怎么设置(华为nova4指纹锁怎么不见了)

  • 抖音音乐在哪里找(抖音音乐在哪里听)

    抖音音乐在哪里找(抖音音乐在哪里听)

  • 抖音举报人会被对方看到么(抖音举报人会被第三方看到吗)

    抖音举报人会被对方看到么(抖音举报人会被第三方看到吗)

  • hmscore可以卸载吗(hms core卸载了在哪儿安装回来载)

    hmscore可以卸载吗(hms core卸载了在哪儿安装回来载)

  • 陌陌是啥(陌陌是啥时候出的)

    陌陌是啥(陌陌是啥时候出的)

  • 全民k歌电脑版微信登录不了(全民k歌电脑版和手机版有什么区别)

    全民k歌电脑版微信登录不了(全民k歌电脑版和手机版有什么区别)

  • 小米放大器重置搜不到(小米放大器重置不了)

    小米放大器重置搜不到(小米放大器重置不了)

  • 手机转接头怎样用u盘(手机转接头怎样传照片到u盘)

    手机转接头怎样用u盘(手机转接头怎样传照片到u盘)

  • 淘宝怎么看商品网址(淘宝怎么看商品以前价格)

    淘宝怎么看商品网址(淘宝怎么看商品以前价格)

  • 微信怎么不被拉进群(微信怎么不被拉黑好友)

    微信怎么不被拉进群(微信怎么不被拉黑好友)

  • 抖音号怎样查手机号(抖音怎样查手机号)

    抖音号怎样查手机号(抖音怎样查手机号)

  • word里如何把文字竖着居中(word里如何把文字竖着排列)

    word里如何把文字竖着居中(word里如何把文字竖着排列)

  • tpc数据线是干什么用的(tpc充电线和普通的有什么区别)

    tpc数据线是干什么用的(tpc充电线和普通的有什么区别)

  • ygps是什么(rgps是什么)

    ygps是什么(rgps是什么)

  • xr支持动态壁纸吗(xr动态壁纸按压没反应)

    xr支持动态壁纸吗(xr动态壁纸按压没反应)

  • vivo手机更改图标外观(vivo手机更改图标大小)

    vivo手机更改图标外观(vivo手机更改图标大小)

  • 滴滴司机驾龄要求(滴滴驾驶员驾龄要求)

    滴滴司机驾龄要求(滴滴驾驶员驾龄要求)

  • 在哪免费获得win1021H1激活秘钥?2021.4最新激活码推荐(如何免费获得microsoft)

    在哪免费获得win1021H1激活秘钥?2021.4最新激活码推荐(如何免费获得microsoft)

  • 前端基础,超全html常用标签大汇总(前端的基础知识)

    前端基础,超全html常用标签大汇总(前端的基础知识)

  • 销售无形资产增值税纳税义务发生时间
  • 建安增值税怎么计算
  • 小额零星开支税前扣除
  • 计提增值税及附加税费怎么算
  • 往来账款怎么做
  • 利润表的所得税费用怎么填
  • 向境外个人支付咨询费如何算税
  • 固定资产一次性扣除政策文件
  • 国家税务定额发票票样
  • 水利建设基金的计税依据
  • 派发现金红利分录
  • 虚开增值税普通罪量刑标准
  • 土地增值税预征管理办法
  • 小规模纳税人销售农产品税率是多少
  • 外购原材料自用要进项转出吗
  • 非福利企业残疾人用工优惠
  • 库存商品期末计量
  • 福利费要交个人税吗
  • 管理费用纳税调增账务处理
  • 2017年7月后手撕发票还能报销吗?
  • 涂料发票几个点的税
  • 支付的专家费怎么入账
  • 应交增值税怎么做账务处理
  • 税收法定原则的意义
  • 一般纳税人增值税及附加税费申报表怎么填
  • 认筹金客户经常提出哪些问题
  • 入账成本包括增值税税额吗
  • 收到客户预付的货款的会计分录
  • php字符串型数据的定义方式
  • 期间费用的含义
  • 埃热泽尔斯湖面上的波纹,拉脱维亚拉特加尔地区 (© Eaglewood Films/Nimia)
  • noads.exe - noads是什么进程 有什么用
  • php输入输出
  • 阿里云天池大赛pdf
  • 商贸企业国民经济行业代码
  • 临时用工账务处理流程
  • uniapp route
  • 税控系统技术维护费税率
  • uniapp跨域解决方案
  • 猿猴的作文
  • 网络命令traceroute
  • php设置目录权限
  • 文化事业建设费计入什么科目
  • 临时工享受的福利有哪些
  • 发票验证不过去会怎么样
  • 属于长期险种的是
  • 企业医疗保险属于什么类别
  • 暂估库存商品计算怎么算
  • 报销宽带费属于什么费用
  • 年底了,你们公司年会干点啥都?
  • sql server如何删除
  • 关联方交易的税收问题
  • 什么时候不能计入开办费
  • 当月进项票没有开进来
  • 企业所得税如何规避
  • 网上缴税app叫什么
  • 三包适用范围
  • 土地补贴款是什么意思
  • 实收资本的账务处理会影响什么
  • 交易性金融资产的账务处理
  • 职工教育经费住宿费用可以抵扣吗
  • 税控盘和金税盘一样吗
  • 客户到我公司签字怎么说
  • linux上mysql安装详细教程
  • winxp如何访问win10
  • github centos
  • centos7内存占用大
  • linux extundelete
  • win8怎么关闭实时保护
  • linux ls常用命令
  • shadowbar.exe - shadowbar是什么进程 有何作用
  • win7旗舰版如何升级到win10
  • 使用cp命令时以下说法错误的是
  • vue自定义过滤器的语法
  • jquery简单例子
  • nodejs readfile
  • csgo视角指令锁定枪械摇晃
  • Android自定义标签选择面板,自定义ViewGroup
  • jquery中each()方法的作用及使用
  • 陕西省税务系统
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设