小白学爬虫笔记10---正则表达式入门

正则表达式

regular expression regex RE

优势-简洁

例1:

  • 'py'
  • 'pyy'
  • 'pyyy'
    正则表达式 py+

例2

  • 'pyabc'
  • 'pykxyz'
    正则表达式:py[^py]{0,10}

 

正则表达式

  • 通用的字符串表达框架
  • 简洁表达一组字符串的表达式
  • 针对字符串表达“简洁”和“特征”思想的工具
  • 判断某字符串的特征归属

应用:主要在字符串匹配中

  • 表达文本的特征(病毒、入侵等)
  • 同事查找或替换一组字符串
  • 匹配字符串的全部或部分

 

  1. 编译:将符合正则表达式语法的字符串转换成正则表达式特征

 

正则表达式的常用操作符

  • . 表示任何单个字符
  • [] 字符集,对单个字符给出取值范围
  • [^ ] 非字符集,对单个字符给出排除范围
  • * 前一个字符0次或无限次扩展
  • + 前一个字符1次或无限次扩展
  •  前一个字符0次或1次扩展
  • | 左右表达式任意一个
  • {m} 扩展前一个字符m次
  • {m,n} 扩展前一个字符m至n此(含n)
  • ^ 匹配字符串开头
  • $ 匹配字符串结尾
  • () 分组标记,内部只能使用|操作符
  • \d 数字,等价于[0-9]
  • \w 单词字符,等价于[A-Za-z0-9]

 

例子

P(Y|YT|YTH|YTHO)?N: PN\PYN\PYTHN\PYTHON
PYTHON+: PYTHON\'PYTHONN'\PYTHONNN
PY[TH]ON:PYTON\PYHON
PY[^TH]?ON:PYON\PYaON\PYbON...
PY{:3}N:PN\PYN\PYYN\PYYYN

经典正则表达式

  • ^[A-Za-z]+$ 由26个字母组成的字符串
  • ^[A-Za-z0-9]+$ 由26个字母和数字组成的字符串
  • ^-\d+$ 整数
  • ^[0-9][1-9][0-9]$ 正整数
  • [1-9]\d{5} 中国境内邮政编码,6位
  • [\u4e00-\u9fa5] 匹配中文字符(utf-8)
  • \d{3}-\d{8}|d{4}-\d{7} 国内电话号码,010-68913536

匹配IP地址的正则表达式:分4段,每段0-255

\d+.\d+.\d+.\d+
\d{1,3}.\d{1,3).\d{1,3}.\d{1,3}
精确写法
0-99:[1-9]?\d
100-199:1\d{2}
200-249:2[0-4]\d
250-255:25[0-5]
应该是
(([1-9]?\d|1\d{2}|2[0-4]\d|25[0-5]).){3}([1-9]?\d|1\d{2}|2[0-4]\d|25[0-5])

猜你喜欢

转载自blog.csdn.net/paleyellow/article/details/81452426