可能大多数人都不知道正则表达式是什么,下面我来给大家介绍一下,我不会告诉你们其实我也不知道正则表达式是什么的。
首先
我们编写处理字符串的程序或网页时(简单的说就是敲代码的时候)会用到正则表达式,它就是记录文本规则的代码。
举个栗子,大家应该都知道通配符的概念,windows下查找一个word文档你会搜索*.doc,那么,*就是一个任意的字符串,和通配符类似。正则表达式就和这有一些相似,只不过比那种搜索更精准,可以满足你的需求。
入门
我们从栗子开始。
假设你在要在一篇英文文章里搜索hi,那么你就可以使用正则表达式hi。它可以匹配到hi,Hi,hI,HI这四种情况。但是还有些情况你不能排除,比如说him,history等,如果你要精确查找hi的话,那么你就要使用\bhi\b。
\b是正则表达式规定的一个特殊代码也叫元字符,代表单词开头或者结尾,也是单词分界处。\b只匹配一个位置,并不匹配单词分隔字符。
如果你要查找的是hi后面不远处跟着一个Lucy,那么你应该用\bhi\b.*\bLucy\b。
这里的.是一个元字符,匹配除了换行符以外的任意字符。*代表了任意字符。所以\bhi\b.*\bLucy\b就是先一个单词hi,然后任意个数任意字符(不能换行),然后Lucy这个词。
同时使用其他元字符,可以构造出更强大的表达式,又一个栗子:
0\d\d-\d\d\d\d\d\d\d\d匹配的是以0开头,然后是两个数字,然后是一个连字号-,最后是8个数字(这也就是中国的电话号码)。
这里的\d是个新的元字符用来匹配一位数字。-只匹配本身。
为了避免重复,这个表达式也可以写成0\d{2}-\d{8}。这里的{2}和{8}就是重复两次和八次的意思。
PS:博客非原创,刚看到这个的时候感觉一点看不懂,我在原文章的基础上做了些修改和加了一些自己的想法。
评论