正则表达式

Posted 编程101

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了正则表达式相关的知识,希望对你有一定的参考价值。



小编說

学无止境,让我们再次出发!



大家好,我们又见面了,上次的练习题,大家有没有做呢?现在我们公布答案。


  1. 使用模式(.*)匹配各个字符串,之后用[\1]来替换实现功能。这个例子考验了大家对于捕获功能的掌握。


  2. 使用模式(?<=\d)(?=(\d{3})+$)来匹配右边3个数字之前的位置,之后使用’,’进行替换实现插入’,’的效果。这是考验大家对于环视的掌握。


怎么样,相信大家都做对了吧?接着我们继续学习今天的内容,贪婪匹配和占有匹配。这一章不会太长,也不是很难,大家可以抱着稍微轻松一点的心情进行今天的学习。


贪婪匹配与非贪婪匹配


贪婪匹配是指匹配的时候,像*和+等元字符会尽可能多的匹配更多的内容,而不是仅仅满足最低条件就好,这是正则表达式模式匹配的默认行为。非贪婪匹配又叫惰性匹配,是指让元字符仅仅匹配能满足模式的最低要求的串。要开启非贪婪匹配,需要在元字符后面加’?’。



        占有匹配和元组


        有一种自私的爱,叫占有;有一种自私的匹配,叫占有匹配。占有匹配的特点是,一旦这个子表达式匹配成功,他就不会再顾忌整个模式匹配成功与否,不会通过放弃一些在子表达式中已经成功匹配的串从而促使整个模式匹配成功。换句话说,这是一个自私的匹配,一个没有脱离低级趣味的匹配,一个不顾大局的匹配~~在元字符*和+等后面加上+,开启占有匹配。至于元组,和占有匹配十分相似,我们就一并列在下面。


    

        哇,看起来好简单啊,不是吗?没错,因为这是基础语法的最后一部分,我们已经涵盖了绝大部分正则表达式的元字符,完全可以支持我们平时的工作了。所以在下一章中,我们不会再这么费心来学习元字符了。在第三章中,我们将开始学习一些正则表达式的工作机制和如何写出高效的正则表达式,毕竟,高效的做文本查询替换,不就是我们学习正则表达式的初衷么~ 希望大家在第二章之后也多加练习,多和这些元字符玩儿一玩儿,就会更加熟悉它们,也对我们之后的学习打下坚实的基础,我们下章见!


        照例,我们留2个小练习,希望大家通过它们能加深对贪婪匹配和占有匹配的了解。


  1. 分别用’\w+’和’\w+?’ 尝试匹配串’ abcd232WWEWF’,观察并理解匹配结果。


  2. 分别用’\w+\w’和’\w++\w’尝试匹配串’ abcd232WWEWF’,观察并理解匹配结果。


以上是关于正则表达式的主要内容,如果未能解决你的问题,请参考以下文章

PHP 正则表达式总结

正则表达式

正则表达式

正则表达式“或“的使用

正则表达式 验证数字格式 非负数 小数点后保留两位 数字正则 double正则

JS正则表达式详解