正则表达式(第一课)
b代表单词的开头或结尾,也就是单词的分界处。 例:匹配字符hebheb .匹配除了换行符以外的任意字符。 d匹配数字0-9 例:电话号码010-834618930dd-dddddddd或者0d{2}-d{8} s匹配任意的空白符(空格,制表符,换行符,中文全角空格) w匹配字母或数字或下划线或汉字。 d+匹配一个或更多的连续的数字 ^匹配字符串的开始 $匹配字符串的结束 *代表数量,重复一次或多次 +重复一次或多次 ?重复一次或0次 {n}重复n次 {n,}重复n次或多次 {n,m}重复n到m次 [a-z]匹配字符 [.?!]匹配标点符号.?! [a-z0-9A-Z]匹配小写字母,数字,大写字母 例:(?0d{2}[)-]?d{8} (010)88886666022-22223333010)11112222(010-222223333 分支条件 |表示或得意思,满足任意一个条件即可通过 (0d{2})[-]d{8}|0d{2}[-]d{8} 分组 192.168.100.001 匹配IP的正则表达式:d{3}.d{3}.d{3}.d{3} 同样的表达式重复了3次。如何可以简洁点呢?使用()表示子表达式。 (d{3}.){3}d{3} 反义 W匹配任意不是字母,数字,下划线,汉字的字符 S匹配任意不是空白符的字符 S+匹配不包含空白字符的字符串 D匹配任意飞数字的字符 B匹配不是单词开头或结束的位置 [^x]匹配除x外的任意字符 [^abc]匹配除abc外的任意字符 <a[^>]+>匹配<>以a开头的字符串 后向引用 使用小括号指定一个子表达式后,匹配这个子表达式的文本(也就是此分组捕获的内容)可以在表达式或其它程序中作进一步的处理。默认情况下,每个分组会自动拥有一个组号,规则是:从左向右,以分组的左括号为标志,第一个出现的分组的组号为1,第二个为2,以此类推。 后向引用用于重复搜索前面某个分组匹配的文本。例如1代表分组1匹配的内容。 b(w+)bs+1b可以用来匹配重复的单词,像gogogo。这个表达式首先是一个单词,也就是单词开始处和结束处之间的多于一个的字母或数字(b(w+)b),这个单词会被捕获到编号为1的分组中,然后是1个或几个空白符(s+),最后是分组1中捕获的内容(go)(1)。 指定组名 (?<word>w+)意思是将w+的组名指定为word。 要反向引用这个分组捕获的内容,可以使用k<word> 捕获 (exp)匹配exp,并捕获内容到自动命名的组里 (?<name>exp)匹配exp,并捕获内容到name组里 (?;exp)匹配exp不捕获内容 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |