1. 正则表达式

200 阅读1分钟

限定符

  • . : 匹配除了换行符之外的任何单个字符。.色--任何"绿色"、"黄色"..在文本中都会被提取出来。
  • ? : used?--前面的d出现0次或者1次,即'd'可有可无。
  • * : ab*c--'b'可以没有可以多次。
  • + : ab+c --b必须为1次以上的次数。(ab)+--ab出现1次以上。
  • { } :ab{6}c--b出现为6次;ab{2,6}c--b出现的次数为2次或6次。

‘或’运算符

  • | : a (dog|cat)--匹配要么是a dog要么是a cat。
  • [ ] :[a-zA-Z0-9]+--大小写字母和数字出现了1次以上。[^0-9]+--非数字出现了1次以上。

元字符

  • \d : 数字字符0-9
  • \D : 非数字字符
  • \w : 英文、数字、上下划线
  • \W : 非单词字符
  • \s : 空白符(包含Tab和换行符)
  • \S : 非空白符
  • . : 任意字符但不包含换行符
  • ^ : 匹配行首。^a--匹配行首的a,apple。
  • $ : 匹配行尾。a$--匹配行尾的a, tea

案例一

  • 匹配<span> : <span>I am a beauty!<span>

  • 正则:<.+> 则会匹配整个句子而我们想匹配的只有<span>,所以加上一个?就可以转换为懒惰匹配。即:<.+?>

案例二

  • 匹配IP地址:

255.255.255.0

192.168.0.1

  • 正则:\d+.\d+.\d+.\d+

→\b((25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(25[0-5]|2[0-4]\d|[01]?\d\d?)\b

图片.png