黑马程序员--正则表达式

   ----------- android培训java培训、java学习型技术博客、期待与您交流! ------------


关键字:正则表达式

正则表达式

符合一定规则的表达式。String类原有的方法,组合操作时很臃肿,正则表达式相对比较简洁。用字母“regex”表示正则表达式。

作用:用于操作字符串。

好处:简化了对字符串的复杂操作。

弊端:符号定义越多,正则越长,阅读性越差。

特点:用一些特定的符号表示代码操作,简化书写。例如,自定义标签。

学习重点是特殊符号的使用。

具体操作功能:

1. 匹配。String类中的matches()方法。匹配的是整个字符串,有一个字符为假,整个字符串即为假。

  [abc],判断字符串上的字符是否是括号中的字符,而且这个字符串只有一个字符。想要校验第二个字符,只要在加上表达式即可。

  [a-z],单个字符是否属于az

  \d,需要再加一个\,转义成一个表达式。\成对出现。

  \w,邮箱名,字母、数字和下划线。

  X?X出现一次或没有。

2. 切割。split(),可以按符号对字符串进行切割。

   空格+,用于切割不确定的空格。

   .”在正则表达式中代表任意字符,需要使用转义字符“\\.”。

   \\”使用转义字符后才能使用,例如“\\\\”。

   按照叠词切割,例如,”kk”,即对前一个规则的结果重用。将这个规则封装成“组”:(.),第二位继续使用前一位的结果:(.)\\1;第三位继续使用前一位的结果:(.)\\1\\1,也可以使用+表示出现多次:(.)\\1+。数字标号的方法在这里有效,例如(.)\\1{2},表示3重叠词。组的出现都有标号,从1开始,想要使用组,可以通过\n获取,n为组的编号。例如,((())())4组,第一组是第一个左括号。

3. 替换,replaceAll()

  将数字替换成符号,例如,replaceDemo(ss,"\\d{5,}","#");

  $1指代前面规则中的第一个组,例如,replaceDemo(s1,"(.)\\1+","$1");将叠词替换成单个字符。$是个特殊的符号,1表示第一个组,没有数字表示整个字符串是一个组。

4. 获取,将字符串中符合规则的子串取出。

  操作步骤:

  1. 将正则表达式封装成Pattern对象。例如,Pattern p = Pattern.compile(regex);

  2. 将正则表达式和需要操作的字符串关联。例如,p.matcher(str)

  3. 关联后,获取正则匹配引擎。最终是通过匹配器Matcher类中的方法操作字符串,获得想要的数据。例如,Matcher m = p.matcher(str);

  4. 通过引擎对对符合规则的字符串进行操作,比如取出。例如,m.matches()

util包中的Pattern类封装了正则表达式对象。需要导包,java.util.regex.*

String类中的matches()方法,本质上是通过Pattern对象和Matcher对象中的matches()方法。将其封装进Stringmatches()方法,但功能比较单一。replaceAll()也是一样。

Matcher类中的方法:

find(),将规则作用到字符串上,并进行符合规则的子串查找。

group(),用于获取匹配后的结果。

边界匹配器,单词边界:\b。例如,String regex = "\\b[a-z]{4}\\b";,表示一个长度为4的单词。

start()end(),获得子串的起始、终结的角标位。含头不含尾。可以用于切割,只保留角标位以外的字符。

Matcher对象中封装有指针,会记住所处的位置,使用时注意指针的位置可能不是字符串起始位。

 

正则使用方法:

1.如果只想知道该字符串是对是错,使用匹配。

2. 想要将已有的字符串变成另一个字符串,使用替换。

3. 想要按照自定义方式将字符串变成多个字符串,使用切割。获取规则以外的字符串。

4. 想要获得符合要求的字符串的子串,使用获取,获取符合规则的子串。

 

网页爬虫(蜘蛛)

(1)普通用户端(全平台) 音乐播放核心体验: 个性化首页:基于 “听歌历史 + 收藏偏好” 展示 “推荐歌单(每日 30 首)、新歌速递、相似曲风推荐”,支持按 “场景(通勤 / 学习 / 运动)” 切换推荐维度。 播放页功能:支持 “无损音质切换、倍速播放(0.5x-2.0x)、定时关闭、歌词逐句滚动”,提供 “沉浸式全屏模式”(隐藏冗余控件,突出歌词与专辑封面)。 多端同步:自动同步 “播放进度、收藏列表、歌单” 至所有登录设备(如手机暂停后,电脑端打开可继续播放)。 音乐发现与管理: 智能搜索:支持 “歌曲名 / 歌手 / 歌词片段” 搜索,提供 “模糊匹配(如输入‘晴天’联想‘周杰伦 - 晴天’)、热门搜索词推荐”,结果按 “热度 / 匹配度” 排序。 歌单管理:创建 “公开 / 私有 / 加密” 歌单,支持 “批量添加歌曲、拖拽排序、一键分享到社交平台”,系统自动生成 “歌单封面(基于歌曲风格配色)”。 音乐分类浏览:按 “曲风(流行 / 摇滚 / 古典)、语言(国语 / 英语 / 日语)、年代(80 后经典 / 2023 新歌)” 分层浏览,每个分类页展示 “TOP50 榜单”。 社交互动功能: 动态广场:查看 “关注的用户 / 音乐人发布的动态(如‘分享新歌感受’)、好友正在听的歌曲”,支持 “点赞 / 评论 / 转发”,可直接点击动态中的歌曲播放。 听歌排行:个人页展示 “本周听歌 TOP10、累计听歌时长”,平台定期生成 “全球 / 好友榜”(如 “好友中你本周听歌时长排名第 3”)。 音乐圈:加入 “特定曲风圈子(如‘古典音乐爱好者’)”,参与 “话题讨论(如‘你心中最经典的钢琴曲’)、线上歌单共创”。 (2)音乐人端(创作者中心) 作品管理: 音乐上传:支持 “无损音频(FLAC/WAV)+ 歌词文件(LRC)+ 专辑封面” 上传,填写 “歌曲信息
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值