.
. :这个英文句号“.”匹配不包括换行符的一个字符,例如a.b可以匹配abc、acc、a2c、a c,空格也可以匹配;
*
:可以匹配任意数量的字符,例如ab可以匹配abc、abcd、abdkxkdk,只要是ab开头的后面不论多少字符都可以匹配,经常有“.*”表示匹配非换行符任意长度的字符;
{n,m}
{n,m} : 跟*不同的是这个可以控制字符出现的次数,n,m是要输入的数字,
例如 grep ‘ab{2}c’ file1 这句查询中file1是文件,文件中如果有abbc这样的字段就会被匹配出来,因为b出现了两次;
例如 grep ‘ab{2,}c’ file1 这句查询中会匹配file1文件中字符b出现最少两次的所有字段,abbc、abbbbc、abbbbbc 这样的b出现了最少两次的字段都会匹配出来;
例如 grep ‘ab{2,4}c’ file1 这句查询中会匹配file1文件中字符b出现2~4次的所有字段,abbc、abbbc、abbbbc 这样的b出现了2~4次的字段都会被匹配出来;
^
^ :用来匹配以什么开头的行,例如 grep ‘^ab’ file1 用来匹配开头为ab字符的行;
$
$ :用来匹配以什么结尾的行,例如 grep ‘abc$’ file1 用来匹配结尾为abc字符的行;
^$
^$ : 连用的话表示查询的该行为空,因为他们开头到结尾中间什么都没有;
[]
[ ] :方括号用于匹配方括号中出现的任一字符,例如 grep ‘[a]’ file1 表示查询file1中出现过a字符的所有行;[A-Z]用于查询所有大写字母;[A-Za-z]用于查询所有大小写字母;在方括号中^符号表示取反;[^A-D]用于查询非大写字母ABCD中的所有字母;
根据以上学到的正则知识就可以写一个匹配手机号的正则表达式,首先分析一下,手机号十一位其中第一位一定是1第二位可能会是3、4、5、7、8都有可能,后面九位数随机排列所以写出如下正则表达式:”^1[3,4,5,7,8][0-9]{9}”;
\\
\ :反斜杠表示转义字符;
\<word>
\<word> :表示精确匹配,例如\<hello>就只会匹配hello字段;