一个神奇高效的工具-正则表达式(五)
2017-06-30 22:45
260 查看
回顾上一篇
一个神奇高效的工具-正则表达式(四)位置匹配
前面几节,我们主要介绍了使用各种各样的元字符使我们的模式能够满足重复匹配,至此,你可以解决很多问题了。下面通过一个场景来引出本节的主旨The cat scattered his food all over the room.
我们需要找出所有“猫”的单词-cat:
模式:cat
是的,那只猫被我们找到了,可是它所做的事儿,也被我们”找到”了 – s**cat**tered
如何确保模式能够满足我们的需求,又不能找到我们不想要的结果,这往往是需要多加揣摩的
是的,我们虽然直接的用cat作为了我们的模式,但是cat毕竟可能出现在文本的任意地方,我们没有对他的位置进行任何的限定,这自然会”一网打尽”。
本节,我们主要介绍如何结合位置的一些小技巧,让我们的模式更加的健壮。
边界匹配-单词边界
还是上面的场景,如果我们可以增加一个限定,找寻一个单词,单词的文本为”cat”,那就搞定啦。在正则表达式中一个完整的单词,他的前后需要加上限定符’\b’
模式:\bcat\b
使用单词边界的限定符来组成我们的模式,那么,这只坏坏的猫,终于被我们”抓到”了。
当然,\bcat表示cat开头的单词,cat\b表示以cat结尾的单词,如前面提到的,\B就代表不是单词的边界,可用来找寻多余的空格
边界匹配-字符串边界
单词边界可以用来进行有关单词位置相关的匹配,字符串边界也有着类似的用途。开门见山:字符串开头用’^’,字符串结尾用’$’。’^’这个元字符我们已经介绍过了,当时的含义是取非,不过,这必须当它在”[]”内并且紧挨着左边的方括号时,它才有取非的作用,在本节,他发挥着字符串开头限定的作用。
<url> <loc>http://codingsj.com/2017/06/16/pc-no-network-rc/</loc> <lastmod>2017-06-30T11:45:49.112Z</lastmod> </url> <url> <loc>http://codingsj.com/2017/06/16/pc-no-network-dnsmasq/</loc> <lastmod>2017-06-30T11:45:16.180Z</lastmod> </url>
匹配标签loc内的内容
模式:^<loc>.*</loc>
‘^’代表从行首开始匹配的字符串,看似正确的模式,读者是否能看出存在什么问题?
可以在编辑器中尝试着匹配一下,尝试着用上一节介绍的内容解决这个问题吧,do it!
思考一下,^.*$什么情况下得不到匹配
总结
本节内容比较简单,量也不较少,但是要注意实践,很多问题都是在调试的时候出现的这是我的博客,欢迎拍砖:http://codingsj.com
相关文章推荐
- 一个神奇高效的工具-正则表达式(四)
- 一个神奇高效的工具-正则表达式(六)
- 一个神奇高效的工具-正则表达式(一)
- 一个神奇高效的工具-正则表达式(二)
- 一个神奇高效的工具-正则表达式(三)
- 使用PyQt4制作一个正则表达式测试小工具
- 推荐一个正则表达式的工具RegexBuddy
- 转一个正则表达式的工具,很好用.
- 一个不错的正则表达式分析工具
- 一个帮助你了解javascript正则表达式的工具类型网站
- 推荐一个写正则表达式的工具和一个搜正则表达式的网页
- 正则表达式在ff与ie下的一个神奇差异
- 自己动手写一个轻巧,高效的正则表达式引擎
- 【每天一个Linux命令】17. 强大的文件搜索工具grep&&正则表达式
- 介绍一个自己写的学习正则表达式的小工具
- 一个正则表达式的小工具--myRegexHelper
- 一个正则表达式的小工具--myRegexHelper
- 写了一个测试正则表达式的小工具
- 一个测试Javascript正则表达式的在线工具
- Regular Expressions的一个工具:T-Regex 正则表达式验证工具