正则表达式是用于查找指定文本,和基础的查找工具不同,
基础查找工具
根据指定文字或数字进行匹配,可以使用通配符进行查找,但当数据量过于庞大时,我们又不清楚具体要查找的字符,这时就没有头绪了。
正则表达式
可以根据字母的范围比如A-Z,数字的范围0-9来进行匹配适用于模糊查找,进阶用法包括字母或数字出现的次数来匹配。
当然,各有千秋,基础版上手容易,能满足一般用户需求。正则表达式更严谨,搜索范围更广,上手没有那么便捷。
本文章为本人阅读理解,作于笔记。
Test工具:正则表达式练习
符号定义
?
问号 在查找时,如果不确定某个字符是否存在,可以在该字符后面加?,表示该字符可能会出现0次或1次.
如上图所示,当我们在字符r后面跟上?,即使r有没有出现都会被匹配到。
*
星号 在查找时,不确定字符出现的次数时,可以在后面加*,以表示数量没有严格要求,可以没有,也可以有无数个。
如上图所示,当我们在字符d后面跟上*,即使d有没有出现或出现多少次都会被匹配到。
+
加号 在查找时,我们已知该字符最少出现一次,即可使用+符号。
如上图所示,当我们在字符d后面跟上+,d出现一次或以上,才会被识别。
{number}
花括号 在花括号中指定字符出现的次数
指定出现2次
指定出现1~4次
指定出现1~未知次
连续字符
当我们要搜索连续字符时,可以用括号将其包裹,代表一个整体。
我们可以清晰的发现红框处的两个ad是有色差的,识别到两个ad。
括号后面也是可以加其它符号,请在使用中进行实践。
(a|b)
或 或运算可以用来列出(可能存在的字符)。
上图可以看出来,两种结果都高亮显示。
[ab]
中括号 与或运算差不多,它会匹配a或b。
我们可以看到匹配了每个a和d
在后面加+,可以识别任意数量包括ad的字符。
[a-b]
范围查找 匹配a-b之间的字母
a-f之外的是不会被识别的,可查找的范围a-z,A-Z,0-9,
像100-200这样是不行的,但我们可以通过拼接的方式来查找。
还可以指定两个范围。
同样都能实现范围取值。
[^0-9]
标点符号 包括所有的非数字符号。
在后面加+,可以识别出现1次以上的字母或符号。
元字符
大多以反斜杠\开头,同时注意区分字母大小写,如果字母大写,结果不一样。
\d
代表所有数字字符
\D 大写的话会把搜索条件反转,只查找字符、空格、换行符,将数字排外,如下图所示。
\w
字母(不区分大小写)+数字+下划线
\W 大写的话,会匹配空格、制表符(TAB)、换行符(回车)、中文标点符号。
\s
空格、制表符(TAB)、换行符(回车)
\S 大写的话会反转搜索条件。
.(句点)
句点 代表任意字符,不包括换行符。
^
尖号 后面跟上要匹配的字符,会只匹配行首的字符。
$
美元符号,在字符后面跟上美元符号,会匹配行尾的字符。
元字符功能一览表
\d | \D | \w | \W | \s | \S | |
大写字母 | √ | √ | √ | |||
小写字母 | √ | √ | √ | |||
数字 | √ | √ | √ | |||
中文汉字 | √ | √ | √ | |||
英文符号 | √ | √ | √ | |||
中文符号 | √ | √ | √ | |||
特殊符号 | √ | √ | √ | |||
空格 | √ | √ | √ | |||
换行符 | √ | √ | √ | |||
制表符 | √ | √ | √ |
测试文本
This is a string ,can be used testing,please user input string
a show
ad show
add show
adadddddd show ad import
1998,
小写字母aabb
大写字母AABB
数字12345
英文符号, . ? ' " ; : [ ] { } \ | / ! @ % ( ) - + = ` ~
中文符号, 。 ? ‘ “ ; : 【 】 { } 、 | / ! @ % ( ) - + = · ~
特殊符号 & * …… ^ # $
空格
换行
高级概念
当要匹配的文中存在 . (英文句点)时,可以通过在前面加转义字符(\)反斜杠,来让系统知道你要的是原义。
当我们要匹配html标签时,可以通过以下方式,匹配任意数量尖括号内的字符。(想详细了解去看链接视频资料)
具体其它功能需要自行在使用中才能理解。