中陕核建设集团网站,百度推广就是做网站吧,wordpress用户定期清理,中小企业网站建设行情1、什么是正则表达式
一个正则表达式#xff0c;就是用某种模式去匹配字符串的一个公式。很多人因为它们看上去比较古怪而且复杂所以不敢去使用#xff0c;不过#xff0c;经过练习后#xff0c;就觉得这些复杂的表达式写起来还是相当简单的#xff0c;而且#xff0c;一…1、什么是正则表达式
一个正则表达式就是用某种模式去匹配字符串的一个公式。很多人因为它们看上去比较古怪而且复杂所以不敢去使用不过经过练习后就觉得这些复杂的表达式写起来还是相当简单的而且一旦你弄懂它 们你就能把数小时辛苦而且易错的文本处理工作缩短在几分钟(甚至几秒钟)内完成。
2、正则表达式的语法
正则表达式的分类 特殊字符转义字符| 字符匹配符 选择匹配符 限定符 定位符 分组组合和反向引用符
3、元字符(Metacharacter)
3.1转义号 \\
\\符号说明在我们使用正则表达式去检索某些特殊字符的时候需要用到转义符号否则检索不到结果甚至会报错的。
案例 用$ 去匹配 abc(会怎样用(去匹配abc(会怎样 在Java的正则表达式中两个\\代表其他语言中的一个\。 需要使用转义字符的场景
. * () $ / \ ? [] ^ {}3.2、字符通配符
符号符号说明示例解释[]可接收的字符列表[efgh]e、f、g、h中的任意一个字符[^]不可接收的字符列表[^abc]除a、b、c之外的任意1字符包括数字和特殊符号-连字符A-Z任意单个大写字母.匹配除\n以外的任何字符a..b以a开头b结尾中间包括2个任意字符长度为4的字符串\\d匹配单个数字字符相当于[0-9]\\d{3}(\\d)?包含3个或4个数字的字符串\\D匹配非单个数字字符相当于[^0-9]\\D(\\d)*以单个非数字字符开头后接任意个数字字符串\\w匹配单个数字、大小写字母字符相当于[0-9a-zA-Z]\\d{3}\\w{4}以3个数字字符开头的长度为7的数字字符串\\W匹配非单个数字、大小写字母字符相当于[^0-9a-zA-Z]\\W\\d{2}以至少1个非数字字母字符开头2个数字字符结尾的字符串
3.3、选择通配符|
在匹配某个字符串的时候是选择性的即:既可以匹配这个又可以匹配那个这时你需要用到选择匹配符号(|)。
符号符号说明示例解释|匹配|之前或之后的表达式ab|cdab或者cd
3.4、限定符
符号含义示例说明匹配输入*指定字符重复0次或n次无要求零到多(abc)*仅包含任意个abc的字符串等效于\w*abc abcabcabc指定字符重复1次或n次至少一次1到多m(abc)*以至少1个m开头后接任意个abc的字符串m mabc mabcabc?指定字符重复0次或1次最多一次0到1mabc?以至少1个m开头后接ab或abc的字符串mab mabc mmabc{n}只能输入n个字符[abcd]{3}由abcd中字母组成的任意长度为3的字符串abc dbc adc{n,}指定至少n个匹配[abcd]{3,}由abcd中字母组成的任意长度不小于3的字符串aab dbc aaabdc{n,m}指定至少n个但不多于m个匹配[abcd]{3,5}由abcd中字母组成的任意长度不小于3不大于5的字符串abc abcd aaaaa bcdab
3.5、定位符
符号含义示例说明匹配输入^指定起始字符^[0-9][a-z]*以至少1个数字开头后接任意个小写字母的字符串123$指定结束字符^[0-9]\\-[a-z]$以一个数字开头后接连接符-并以至少1个小写字母结尾的字符串m mabc mabcabc\\b匹配目标字符串的边界abc\\b这里说的字符串的边界指的是子串间有空格或者是目标字符串的结束位置cabcd cabc ccabc\\B匹配目标字符串的非边界abc\\B和\\b的含义刚刚相反cabcd cabc ccabc
3.6、分组
常用分组构造形式说明(pattern)非命名捕获。捕获匹配的子字符串。编号为零的第一个捕获是由整个正则表达式模式匹配的文本其它捕获结果则根据左括号的顺序从1开始自动编号。(?namepattern)命名捕获。将匹配的子字符串捕获到一个组名称或编号名称中。用于name的字符串不能包含任何标点符号并且不能以数字开头。可以使用单引号替代尖括号例如(?name)(?:pattern)匹配 pattern 但不捕获该匹配的子表达式即它是一个非捕获匹配不存 储供以后使用的匹配。这对于用or字符(|) 组合模式部件的情况很有用。例如industr(?:y|ies) 是比industry|industries更经济的表达式。(?pattern)它是一个非捕获匹配。例如Windows (?95|98|NT|2000)匹配 Windows 2000中的Windows但不匹配Windows 3.1中的 Windows。(?|pattern)该表达式匹配不处于匹配pattern的字符串的起始点的搜索字符串。它是一个非捕获匹配。例如Windows (?!95|98|NT|2000)匹配 Windows 3.1中的Windows但不匹配Windows 2000中的 Windows。
3.7、修饰符
符号含义示例说明匹配输入i不区分大小写将匹配设置为不区分大小写搜索时不区分大小写: A和 a 没有区别123g全局匹配abc/g查找所有的匹配项Google abc tana abcm多行匹配^abc/gm使边界字符 ^ 和 $ 匹配每一行的开头和结尾记住是多行而不是整个字符串的开头和结尾abcdf taobao abcccs特殊字符圆点 . 中包含换行符 \n/abc./s默认情况下的圆点 . 是匹配除换行符 \n 之外的任何字符加上 s 修饰符之后. 中包含换行符 \nwert abc cba