正则表达式入门

基础用法

限定符

  • used? 问号?可以匹配0个或多个字符d,也就是说d可有可无 (use,used)
  • ab*c 星号 * 可以匹配0次或多次字符b,也就是说b可有可无 (ac,abc,abbbbbbbbc)
  • ab+c 加号+ 可以匹配出现1次以上的字符 (abc,abbbbbbc)
    • ab{6}c 让b出现的次数为6次 (abbbbbbc)
    • ab{2,6}c 让b出现的次数在2~6之间
    • ab{2,}c 让b出现的次数为2次以上
  • (ab)+ 匹配ab一次或多次 (abc,abbc,abababac)

或 运算符

  • a (cat|dog) 匹配a cat或a dog

字符类

  • [abc]+ 匹配的内容只能取自方括号内的字符 (abc,aabbcc)
  • [a-zA-Z0-9]+ 匹配所有大小写字母和数字
  • [^0-9]+ ^表示非 所有的非数字字符,包括换行符

元字符

  • \d 数字字符 \D 非数字字符
  • \w 单词字符 所有英文、数字、下划线 \W 非单词字符
  • \s 空白符 包含tab和换行符 \S 非空白字符
  • .* 句点匹配任意字符,不包括换行符
  • ^a 匹配行首的a
  • a$ 匹配行尾的a

贪婪匹配与懒惰匹配

<.+?> 仅匹配html中的标签
<span><b>this is a sample text</b></span>

实例

匹配所有十六进制颜色
#[a-fA-F0-9]{6}\b 字母或数字出现六次,\b表示边界

匹配ip地址
\d+.\d+.\d+.\d+ 这种方法不能排除超过255的,需要使用下面的方法
\b((25[0-5]|2[0-4]\d|[01]?\d\d?).){3}(25[0-5]|2[0-4]\d|[01]?\d\d?)\b


版权声明:本文为weixin_44016186原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。