实践过程调试bug 和 初步了解正则表达式

当我们选择与程序员有关的专业,或者选择的专业未来的就业方向就是程序员时,我们与程序中的代码产生了一种关系
作为程序员,学习代码,锻炼思维,逻辑是必要的的过程,而调试bug也是必要的
作为一个初学者,更应该努力打基础。
(对正则表达式的初步了解,我放在了最后进行学习,想看就到啦最后吧)
最近在做作业的模仿实践中,作业出现了bug,数据不能显示出来。
选择其中一个文件导入

在这里插入图片描述
在浏览器页面上的显示区是一片空白的
在这里插入图片描述
进行控制器断点调试
在这里插入图片描述
控制器的断点是执行的(已经请求该方法)
在这里插入图片描述
经过大片断点调试和逐句调试
到达应用正则表达式处理文本
在这里插入图片描述
调试结果是正则表达式对文本的处理是不成功的,style样式没有去除掉
在这里插入图片描述
正则的修改
在这里插入图片描述
重新对正则进行修改后,数据处理是成功的
在这里插入图片描述
同样,页面显示也是可以了
在这里插入图片描述
因为刚刚接触和初步学习正则表达式,并未认真的去听去学,所以不能清楚看出此正则表达式的错误。

(一) 正则表达式是一个什么的东西?(个人理解(理解资料源于老师提供的学习材料))
(1) 正则表达式是用于描述某些复杂规则的字符串的工具;也可以说,正则表达式就是记录文本规则的代码
(2) 正则表达式也可以说是用于文本匹配的工具
(二) 正则表达式的基础元字符
在这里插入图片描述
(三) 重复
在这里插入图片描述
(四) 反义字符
在这里插入图片描述
(五) 分组语法
在这里插入图片描述
(六) 贪婪与懒惰
贪婪匹配:当正则表达式中包含能重复接受的限定字符时,通常的行为是在表达式能匹配的前提下,去匹配更多的字符。
例如:a.*b, 它将会匹配最长的以a开始,以b结束的字符串。用其来搜索aaaabbbbabaaaaabbbbb的话,
它会匹配整个字符串aaaabbbbabaaaaabbbbb。

懒惰匹配: 就是匹配尽可能少的字符。按理所有的限定符都可以被转化为懒惰匹配模式,只要在它后面加上一个问号?
例如:a.*?b, 它将会匹配最短的以a开始,以b结束的字符串。用其来搜索aaaabbbbabaaaaabbbbb的话,
它会匹配出aaaab、ad、aaaab

注意:在正则表达式中懒惰比贪婪的优先级更高(最先开始匹配的有最大优先权)
在这里插入图片描述
七)零宽断言和负向零宽断言
在前面的分组语法中有提到过零宽断言
(1) 零宽断言(用于查找在某些内容(但并不包含此内容)之前或之后的东西或内容,类似元字符中的\b,^,$ ,
用于指定一个特定的位置,这个位置应该满足一定的条件(断言))
零宽断言有零宽度正预测先行断言和零宽度正回顾后发断言
(?=exp)也称零宽度正预测先行断言,它断言自身出现的位置的后面能匹配表达式exp。比如 \b\w+(?=ing\b),
匹配以ing结尾的单词的前面部分(除了ing以外的部分)
(?<=exp)也称零宽度正回顾后发断言,它断言自身出现的位置的前面能匹配表达式exp。
(2)负向零宽断言(只匹配一个位置,并不消费任何字符)
(?!exp)也称零宽度负预测先行断言,断言此位置的后面不能匹配表达式exp。、
例如:\b((?!abc)\w)+\b匹配不包含连续字符串abc的单词。
(?<!exp)也称零宽度正回顾后发断言 ,断言此位置的前面不能匹配表达式exp。
例如:(?<![a-z])\d{7}匹配前面不是小写字母的七位数字。
(八)字符转义、替换、分组、范围
(1)转义字符
正则表达式中的转义字符为” \ ”
(2)替换
正则表达式的替换指的是有几种规则,如果满足其中一种规则到应该匹配,不同的规则用“|”分隔开来
例如; 0\d{2}-\d{8}|0\d{3}-\d{7} 此表达式有两种替换规则
注意:使用替换时,规则的顺序很重要
例如:\d{5}-\d{4}|\d{5} 此表达式匹配的时某国的邮政编码
如果将表达式中的两个规则换位
\d{5}|\d{5}-\d{4} 则此表达式只会匹配5位的邮政编码
原因是匹配替换规则时,将会从左到右地测试每个替换规则条件,如果满足了某个替换规则的话,
就不会去管其它的替 换规则了。
(3)分组
但我们写正则时,如果想要重复多个字符时。你可以用小括号来指定子表达式(也叫做分组),
然后你就可以指定这个子表达式的重复次数了
例如:(\d{1,3}.)({3}\d{1,3}\d{1}\w )
(4) 范围
如果我们想查找范围中的字符可以如此表达
[] 方括号里是要匹配范围的正则
例如:[0-9a-zA-z] 它将匹配数字0到9 ,a到z 26个字母的大小写。

我对正则的学习和初步的理解暂时到了这里就结束了,还请各位如果有更多的学习资料,麻烦你们推荐该我,
让我也进行下一步的学习。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值