正则表达式(regular expression)描述了一种字符串匹配的模式,可以用来检查一个串是否含有某种子串、将匹配的字串做替换或者从某个串中取出符合某个条件的字串等。
正则表达式在线测试:http://www.regexpal.com/
元字符#
常用元字符:
代码说明.匹配除换行符以外的任意字符\w匹配字母或数字或下划线或汉字\d匹配数字\s匹配空格\b匹配单词的开始或结束^匹配字符串的开始,如果是处理多行,意义变成行开始处$匹配字符串的结束,如果是处理多行,意义变成行结束处
限定符#
常用限定符:
代码说明**前面的内容重复任意次++前面的内容重复一次或者多次?重复零次或一次{n}重复n次{n, }重复次数大于等于n{n,m}重复次数大于等于n小于等于m
字符类#
[auiou] 匹配任何一个英文元音字母[.?!] 匹配标点符号(. ? !)
反义#
代码说明\W匹配任意不是字母、数字、下划线、汉字的字符\S匹配任意不是空白符的字符\D匹配任意非数字的字符\B匹配不是单词开头或结束的位置[^x]匹配除了x以外的任意字符[^abcd]匹配除了abcd以外的任意字符
分组#
代码说明(exp)匹配exp,并捕获文本到自动命名组中(?nameexp)(?:exp)匹配exp,不捕获匹配的文本,也不给次分组分配组号(?=exp)匹配exp前面的位置(?<=exp)匹配exp后面的位置(?!exp)匹配后面跟的不是exp的位置(?<!exp)匹配前面不是exp的位置(?#comment)注释
贪婪与懒惰#
通常重复限定符的行为是匹配尽可能多的字符,在限定符后面加?使之成为惰性限定符,例如*?的含义为重复任意次数,但是尽可能少
