欢迎来到天天文库
浏览记录
ID:48773899
大小:485.50 KB
页数:21页
时间:2020-01-23
《java正则表达式.ppt》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、正则表达式1正则表达式正则表达式提供了功能强大、灵活而又高效的方法来处理文本。正则表达式的全面模式匹配表示法使您可以快速分析大量文本以找到特定的字符模式;提取、编辑、替换或删除文本子字符串;或将提取的字符串添加到集合以生成报告。对于处理字符串的许多应用程序而言正则表达式是不可缺少的工具。1.1正则表达式简介正则表达式:用某种模式去匹配指定字符串的一种表示方式。正则表达式由普通字符和元字符组成。普通字符:常使用的字符如字母、数字、汉字等元字符:可以匹配某些字符形式的具有特殊含义的字符,其作用类似于DOS命令使用的通配符。1.1正则表达式
2、简介(续)1.正则表达式基本书写符号符号含义示例解释匹配输入转义符*符号“*”*[]可接收的字符列表[efgh]e、f、g、h中的任意1个字符e、f、g、h[^]不接收的字符列表[^abc]除a、b、c之外的任意1个字符,包括数字和特殊符号m、q、5、*
3、匹配“
4、”之前或之后的表达式ab
5、cdab或者cdab、cd()将子表达式分组(abc)将字符串abc作为一组abc-连字符A-Z任意单个大写字母大写字母1.1正则表达式简介(续)2.正则表达式限定符限定符将可选数量的数据添加到正则表达式,下表为常用限定符:符号含义示例解释匹配输
6、入不匹配输入*指定字符重复0次或n次(abc)*仅包含任意个abc的字符串,等效于w*abc、abcabcabca、abca+指定字符重复1次或n次m+(abc)*以至少1个m开头,后接任意个abc的字符串m、mabc、mabcabcma、abc?指定字符重复0次或1次m+abc?以至少1个m开头,后接ab或abc的字符串mab、mabc、mmmab、mmabcab、abc、mabcc{n}只能输入n个字符[abcd]{3}由abcd中字母组成的任意长度为3的字符串abc、dbc、adca、aa、dcbd1.1正则表达式简介(续)常
7、用的限定符(续)符号含义示例解释匹配输入不匹配输入{n,}指定至少n个匹配[abcd]{3,}由abcd中字母组成的任意长度不小于3的字符串aab、dbc、aaabdca、cd、bb{n,m}指定至少n个但不多于m个匹配[abcd]{3,5}由abcd中字母组成的任意长度不小于3,不大于5的字符串abc、abcd、aaaaa、bcdabab、ababab、a^指定起始字符^[0-9]+[a-z]*以至少1个数字开头,后接任意个小写字母的字符串123、6aa、555edfabc、aaa、a33$指定结束字符^[0-9]-[a-z]+$
8、以1个数字开头后接连字符“–”,并以至少1个小写字母结尾的字符串2-a、3-ddd、5-efg33a、8-、7-Ab1.1正则表达式简介(续)3.匹配字符集匹配字符集是预定义的用于正则表达式中的符号集。如果字符串与字符集中的任何一个字符相匹配,它就会找到这个匹配项。1.1正则表达式简介(续)符号含义示例解释匹配输入不匹配输入.匹配除以外的任何字符a..b以a开头,b结尾,中间包括2个任意字符的长度为4的字符串aaab、aefb、a35b、a#*bab、aaaa、a347bd匹配单个数字字符,相当于[0-9]d{3}(d)?包
9、含3个或4个数字的字符串123、987612、01023D匹配单个非数字字符,相当于[^0-9]D(d)*以单个非数字字符开头,后接任意个数字字符串a、A342aa、AA78、1234w匹配单个数字、大小写字母字符,相当于[0-9a-zA-Z]d{3}w{4}以3个数字字符开头的长度为7的数字字母字符串234abcd、12345Pe58a、Ra46W匹配单个非数字、大小写字母字符,相当于[^0-9a-zA-Z]W+d{2}以至少1个非数字字母字符开头,2个数字字符结尾的字符串#29、#?@1023、#?@100正则表
10、达式中的部分匹配字符集1.1正则表达式简介(续)4.分组构造分组构造说明()非命名捕获。捕获匹配的子字符串(或非捕获组)。编号为零的第一个捕获是由整个正则表达式模式匹配的文本,其它捕获结果则根据左括号的顺序从1开始自动编号。(?)命名捕获。将匹配的子字符串捕获到一个组名称或编号名称中。用于name的字符串不能包含任何标点符号,并且不能以数字开头。可以使用单引号替代尖括号,例如(?'name')常用分组构造形式1.1正则表达式简介(续)命名捕获根据左括号的从左到右的顺序按顺序编号,但在对所有非命名捕获进行计数之后才开始对命名
11、捕获进行编号。例:模式((?abc)/d+)?(?xyz)(.*)产生的捕获组分别为:第0组:((?abc)/d+)?(?xyz)(.*)第1组:(非命名捕获):((?a
此文档下载收益归作者所有